۱۲ عملگر NumPy — عملگر‌های نامپای برای مبتدی ها

۱۰۲۵ بازدید
آخرین به‌روزرسانی: ۰۳ مهر ۱۴۰۲
زمان مطالعه: ۵ دقیقه
۱۲ عملگر NumPy — عملگر‌های نامپای برای مبتدی ها

«نامپای» (NumPy) بسته‌ای برای انجام محاسبات علمی در زبان پایتون است. نامپای از آرایه‌های چندبعدی به خوبی پشتیبانی می‌کند که در ادامه این مقاله در مورد آن‌ها به تفصیل صحبت خواهیم کرد. در این مطلب با 12 عملگر NumPy برای افراد مبتدی آشنا می‌شوید.

چنان‌که اشاره کردیم نامپای که اختصاری برای عبارت «پایتون عددی» (Numerical Python) است، یک کتابخانه زبان برنامه‌نویسی پایتون برای کار با آرایه‌ها و اجرای انواع مختلفی از عملیات ریاضی روی اعداد و آرایه‌ها محسوب می‌شود. نامپای یک کتابخانه ضروری برای اجرای محاسبات علمی در پایتون است و در اغلب موارد به همراه دیگر کتابخانه‌های مرتبط با علوم داده پایتون مانند SciPy ،Pandas و Matplotlib استفاده می‌شود.

در ادامه این مطلب 12 عملگر نامپای ارائه شده‌اند که شما می‌توانید آن‌ها را مستقیماً در مفسر پایتون خود وارد کرده و عملکردشان را بررسی کنید. همچنین می‌توانید در این صفحه ریپازیتوری گیت‌هاب (+) به نت‌بوک پایتونی دسترسی داشته باشید که همه کدها را یک‌جا ارائه کرده است.

عملگر numpy برای اپمیورت نامپای با عنوان np و مشاهده شماره نسخه

برای ایمپورت کردن هر کتابخانه‌ای در پایتون باید از کلیدواژه import استفاده کنید. نامپای به طور معمول با نام مستعار np ایمپورت می‌شود.

به این ترتیب می‌توانید به جای استفاده از کلمه numpy با بهره‌گیری از عبارت دو حرفی np به این پکیج اشاره کنید.

1import numpy as np
2print(np.__version__)

خروجی کد فوق عددی مشابه زیر است.

1.20.1

ساخت شیء ndarray با نامپای

شیء آرایه در نامپای به صورت ndarray شناخته می‌شود. برای ساخت شیء ndarray در نامپای می‌توانید از متد ()array بهره بگیرید. این متد یک لیست، چندتایی (tuple) یا یک شیء شبه آرایه می‌گیرد. به مثال زیر توجه کنید تا با روش ساخت یک آرایه نامپای از یک چندتایی آشنا شوید.

1import numpy as np
2print(np.__version__)

خروجی کد فوق چنین است:

array([23، 32، 65، 85])

در مثال زیر یک آرایه نامپای را از روی یک لیست در پایتون ایجاد می‌کنیم.

1arrObj = np.array([43، 23، 75، 15])
2arrObj

خروجی کد فوق چنین است.

array([43، 23، 75، 15])

ساخت آرایه های نامپای صفر تا n بعدی

در نامپای می‌توانید آرایه‌ای با هر تعداد بعد که دوست دارید بسازید. برای نمونه برای ساخت آرایه 0-بعدی با استفاده از عملگر numpy به صورت زیر عمل می‌کنیم.

آرایه‌های صفربعدی

1arrObj = np.array([43، 23، 75، 15])
2arrObj

خروجی کد فوق چنین است.

array(21)

آرایه‌های یک‌بعدی

برای ساخت آرایه یک بعدی کافی است از آرایه‌های 0-بعدی به عنوان عناصر آرایه 1-بعدی بهره بگیریم. به مثال زیر توجه کنید.

1arrObj = np.array([43، 23، 75، 15])
2arrObj

خروجی

array([43، 23، 75، 15])

آرایه‌های دوبعدی

برای ساخت آرایه دو بعدی کافی است از آرایه‌های 1-بعدی به عنوان عناصر آرایه 2-بعدی بهره بگیریم. به مثال زیر توجه کنید.

1arrObj = np.array([[12، 43، 21]، [67، 32، 98]])
2arrObj

خروجی

array([[12, 43, 21],
[67, 32, 98]])

آرایه‌های سه‌بعدی

برای ساخت آرایه سه بعدی کافی است از آرایه‌های 2-بعدی به عنوان عناصر آرایه 3-بعدی بهره بگیریم. به مثال زیر توجه کنید.

1arrObj = np.array([[[23, 45, 22], [45, 76, 23]], [[67, 23, 56], [12, 76, 63]]])
2arrObj

خروجی:

array([[[23, 45, 22],
        [45, 76, 23]],
       [[67, 23, 56],
       [12, 76, 63]]])

آرایه‌های nبعدی

با استفاده از آرگومان ndmin می‌توانید آرایه‌هایی با ابعاد دلخواه بسازید.

1arrObj = np.array([23، 22، 65، 44]، ndmin=5)
2arrObj

خروجی:

array([[[[[23، 22، 65، 44]]]]])

مطلب پیشنهادی برای مطالعه: برنامه نویسی پایتون (Python) با کتابخانه NumPy — به زبان ساده

شیوه بررسی بعد یک آرایه

برای مشاهده ابعاد یک آرایه می‌توانید از خصوصیت ndmin به صورت زیر بهره بگیرید.

1arrObj1 = np.array(21)
2arrObj2 = np.array([43، 23، 75، 15])
3arrObj3 = np.array([[12، 43، 21]، [67، 32، 98]])
4arrObj4 = np.array([[[23، 45، 22]، [45، 76، 23]]، [[67، 23، 56]، [12، 76، 63]]])
5print(arrObj1.ndim)
6print(arrObj2.ndim)
7print(arrObj3.ndim)
8print(arrObj4.ndim)

خروجی:

0
1
2
3

شیوه دسترسی به عناصر آرایه های یک تا سه بعدی

برای دسترسی به هر عنصر یک آرایه می‌توانید از اندیس آن عنصر بهره بگیرید. به این منظور باید از اعداد صحیح جدا شده با کاما استفاده کنید که نمایانگر اندیس هر بعد باشند.

1arrObj1 = np.array([43، 23، 75، 15])
2arrObj2 = np.array([[12، 43، 21]، [67، 32، 98]])
3arrObj3 = np.array([[[23، 45، 22]، [45، 76، 23]]، [[67، 23، 56]، [12، 76، 63]]])
4print(arrObj1[2])
5print(arrObj2[0، 2])
6print(arrObj3[0، 1، 2])

خروجی:

75

21

23

نکته: آرایه‌های نامپای از اندیس‌های منفی نیز پشتیبانی می‌کنند.

عملگر‌ numPy

شیوه بررسی نوع داده شیء آرایه نامپای

امکان بررسی نوع داده شیء آرایه نامپای با استفاده از مشخصه dtype وجود دارد.

به مثال زیر توجه کنید.

1arrObj1 = np.array([1, 2, 3, 4])
2arrObj2 = np.array([1.3, 6.8, 3.5, 9.2])
3arrObj3 = np.array(['Welcome', 'to', 'MUO'])
4print(arrObj1.dtype)
5print(arrObj2.dtype)
6print(arrObj3.dtype)

خروجی:

int32
float64
<U7

نکته: نامپای از کارترهای زیر برای نمایش انواع داده داخلی خود بهره می‌گیرد.

  • i — عدد صحیح (علامت‌دار)
  • b — مقدار بولی
  • O — شیء
  • S — رشته
  • u — عدد صحیح بی‌علامت
  • f — عدد اعشاری
  • c — عدد مختلط
  • m — تفاضل زمانی
  • M — تاریخ و زمان
  • U — رشته یونیکد
  • V — داده خام (تهی)

تغییر نوع داده در یک آرایه نامپای

امکان تغییر دادن نوع داده یک آرایه نامپای با استفاده از متد astype(data_type)  به عنوان یک عملگر numpy وجود دارد. این متد یک نوع داده به عنوان پارامتر می‌گیرد و یک کپی جدید از آرایه می‌سازد. امکان تعیین نوع داده با استفاده از کاراکترهایی مانند b برای مقدار بولی، I برای مقدار عدد صحیح، f برای مقدار اعشاری و غیره وجود دارد.

برای تبدیل یک آرایه عدد صحیح به آرایه اعشاری به صورت زیر عمل می‌کنیم.

1arrObj = np.array([43، 23، 75، 15])
2floatArr = arrObj.astype('f')
3floatArr

خروجی:

array([43.، 23.، 75.، 15.]، dtype=float32)

برای تبدیل یک آرایه اعشاری به آرایه اعداد صحیح به صورت زیر عمل می‌کنیم.

1arrObj = np.array([1.3, 6.8, 3.5, 9.2])
2intArr = arrObj.astype('i')
3intArr

خروجی:

array([1، 6، 3، 9]، dtype=int32)

کپی کردن یک آرایه نامپای به آرایه دیگر

برای کپی کردن یک آرای نامپای به آرایه دیگر از تابع ()np.copy کمک می‌گیریم. این تابع یک کپی آرایه از شیء مفروض به دست می‌دهد.

1oldArr = np.array([43, 23, 75, 15])
2newArr = np.copy(oldArr)
3newArr

خروجی

array([43، 23، 75، 15])

مشاهده شکل یک آرایه نامپای

شکل یک آرایه نامپای به معنی تعداد عناصر در هر بعد آن است. برای یافتن شکل یک آرایه از خصوصیت shape آرایه‌های نامپای استفاده می‌کنیم. این خصوصیت یک چندتایی بازگشت می‌دهد که عناصر آن طول ابعاد متناظر آرایه است.

1arrObj = np.array([[12, 43, 21], [67, 32, 98]])
2arrObj.shape

خروجی:

(2، 3)

تغییر دادن شکل یک آرایه

تغییر دادن شکل یک آرایه به معنی تغییر دادن ابعاد آن است. توجه کنید که امکان تغییر دادن یک آرایه به شکل دلخواه مقدور نیست. تعداد عناصر مورد نیاز برای تغییر دادن شکل یک آرایه باید در هر دو شکل مبدأ و مقصد یکسان باشند.

1arrObj = np.array([43، 23، 75، 15، 34، 45])
2reshapedArr = arrObj.reshape(2، 3)
3reshapedArr

خروجی:

array([[43، 23، 75]،
[15، 34، 45]])

مرتب سازی عناصر یک آرایه نامپای

برای مرتب‌سازی عناصر آرایه‌های نامپای از تابع ()numpy.sort بهره می‌گیریم. به مثال‌های زیر توجه کنید.

  • مثال: مرتب‌سازی آرایه یک بعدی از عناصر عدد صحیح
1arrObj = np.array([43, 23, 75, 15])
2np.sort(arrObj)

خروجی:

array([15، 23، 43، 75])
  • مثال: مرتب‌سازی آرایه یک بعدی از عناصر رشته‌ای
1arrObj = np.array(["Python", "JavaScript", "Solidity", "Golang"])
2np.sort(arrObj)

خروجی:

array(['Golang'، 'JavaScript'، 'Python'، 'Solidity']، dtype='<U10')
  • مثال: مرتب‌سازی آرایه دو بعدی از اعداد صحیح
1arrObj = np.array([[12, 43, 21], [67, 32, 98]])
2np.sort(arrObj)

خروجی:

array(['Golang'، 'JavaScript'، 'Python'، 'Solidity']، dtype='<U10')

سخن پایانی

پایتون یکی از محبوب‌ترین زبان‌های برنامه‌نویسی دنیا محسوب می‌شود. این زبان در حوزه‌های مختلفی از قبیل توسعه وب، کاربردهای علمی و عددی، توسعه نرم‌افزار و حتی توسعه بازی مورد استفاده قرار می‌گیرد. از این رو بهتر است با متدها و تابع‌های داخلی پایتون آشنا باشید تا بتوانید بهترین عملکرد را با آن تجربه کنید. در این مطلب تلاش کردیم تا شما را با انواع مختلفی از عملگر numpy که در زمان برنامه‌نویسی پایتون به کارتان خواهند آمد آشنا سازیم. به این ترتیب می‌توانید کدهای کوتا‌ه‌تری بنویسید و کارایی خود را افزایش دهید.

بر اساس رای ۱۳ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
makeuseof
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *