معرفی کتابخانه Numpy برای زبان برنامه نویسی پایتون

Numpy در حقیقت یک کتابخانه قدرتمند برای محاسبات علمی و کار با آرایههاست. در این مقاله به کار با NumPy پرداخته و مزایای مختلف و موارد استفاده آن بررسی میشود. پس اگر در زمینه برنامه نویسی با Python فعالیت دارید و به خصوص به حوزه یادگیری ماشین علاقهمند هستید تا انتهای این مقاله همراه ما باشید.
Numpy چیست؟
کلمه Numpy در حقیقت مخفف Numerical Python است و همانطور که پیشتر ذکر شد Numpy یک کتابخانه برای کار با اعداد، آرایهها، ماتریسها و عملیاتهای مختلف ریاضی بر روی آنها میباشد. این کتابخانه همانند بسیاری از کتابخانههای پایتون متن باز (open-source) است.
مزیتهای Numpy چیست؟
با توجه به اینکه آرایههای Numpy با لیست ها در پایتون شباهت دارند شاید سوال به وجود بیاید که چرا باید از Numpy استفاده بکنیم؟ در ادامه به بخشی از مزیت های این کتابخانه اشاره میکنیم:
- نسبت به لیستها بهینهتر و سریعتر است
- امکان پیاده سازی آرایههای چندبعدی
- فضای Memory کمتری اشغال میکند.
- به طور مستقیم نمیتوان بر روی لیستهای پایتون از عملگرهای ریاضی (جمع، تفریق، ضرب، تقسیم و…) استفاده کرد اما بر روی آرایهها این امکان وجود دارد. برای درک بهتر این موضوع به دو مثال زیر توجه فرمایید:
python_list = [1, 2, 3, 4, 5, 6, 7, 8, 9] print((python_list) * 2) TypeError: unsupported operand type for *:'list' and 'int'In [5]: numpy_array = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
my_array = numpy.array([1, 2, 3, 4, 5, 6, 7, 8, 9]) print((my_array) * 2) output: [2 4 6 8 10 12 14 16 18]
این موضوع در انجام عملیاتهای بین آرایهها مختلف هم صادق است:
print(python_list + python_list) [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9] #دوبار لیست پایتون تکرار شده است print(my_array + my_array) [2 4 6 8 10 12 14 16 18] #هر ایندکس متناظرا با خودش جمع شده است
چگونه Numpy را نصب کنیم؟
افزودن این کتابخانه به لیست کتابخانههای پایتون بسیار ساده بوده و از همان دستور معمول استفاده میشود:
pip install numpy
کافی دستور فوق را در ترمینال خود اجرا کنید.
چگونه Numpy را به پروژه وارد کنیم؟
جهت اضافه کردن کتابخانه نامپای از دستور زیر استفاده میکنیم:
import numpy as np
as np در قطعه کد فوق در حقیقت مخفف numpy است و از این به بعد در پروژه هرگاه np را مشاهده کردیم عملا همان کتابخانه نامپای را صدا زده ایم.
خب تا اینجای با هویت کتابخانه نامپای آشنا شدیم. در ادامه به چند فانکشن و نحوه استفاده از نامپای در پروژه ها اشاره میشود.
ساخت یک آرایه در numpy:
برای ساخت آرایه از متد np.array استفاده می کنیم:
#ساخت آرایه با لیست ها arrayFromList = np.array([1, 2, 3, 4, 5, 6]) # ساخت آرایه با تاپل ها arrayFromTuple = np.array((1, 2, 3, 4, 5, 6))
بدست آوردن اندازه (Size) یک آرایه
با استفاده متد size میتوانید تعداد مقادیر در هر آرایه را بدست آورد (این متد به وسیله نام هر آرایه صدا زده میشود) :
numpy_array = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9]) print(numpy_array.size) 9
یافتن ابعاد یک آرایه
جهت یافتن ابعاد یک آرایه از دستور shape استفاده میکنیم:
numpy_matrix = np.array([(1, 2, 3, 4), (5, 6, 7, 8)]) print(numpy_matrix.shape) (2, 4)
تغییر ابعاد آرایه ها
برای تغییر ابعاد به سادگی میتوانیم از دستور reshap استفاده کنیم. به عنوان مثال فرض کنید یک آرایه با ابعاد (2,4) را میخواهیم به (4,2) تبدیل کنیم، به این منظور از دستور زیر استفاده میکنیم:
numpy_matrix = np.array([(1, 2, 3, 4), (5, 6, 7, 8)]) numpy_matrix = numpy_matrix.reshape(4, 2) print(numpy_matrix) [[1, 2] [3, 4] [5, 6] [7, 8]]
انتخاب بخشی از یک آرایه (Slicing NumPy Arrays)
با استفاده از روش زیر میتوان زیر مجموعه هایی از یک آرایه ساخت. در این روش فقط کافی است ایندکس ابتدا و انتها را مدنظر را به شکل زیر وارد کنیم:
#ساخت یک آرایه یک بعدی oneDimensionalData = np.array([1, 2, 3, 4, 5, 6]) # ساخت یک زیر مجموعه که از ایندکس 1 شروع می شود و انتها آن ایندکس 3 است print(f"Array Subset: {oneDimensionalData[1: 4]}") # Output=> Array Subset: [2 3 4]
یافتن و محاسبه ماکزیمم، مینیمم، جمع، میانگین، میانه، انحراف معیار و واریانس یک آرایه:
numpy_array = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9]) # یافتن ماکزیمم print(numpy_array.max()) # output=> 9 #یافتن مینمم print(numpy_array.min()) # output=> 1 #محاسبه مجموع print(numpy_array.sum()) # output=> 45 #محاسبه میانگین print(numpy_array.mean()) # output=> 5 #یافتن میانه print(numpy_array.median()) # output=> 5 #محاسبه واریانس print(numpy_array.var()) # output=> 6.666666666666667 #محاسبه انحراف معیار print(numpy_array.std()) # output=> 2.581988897471611