کتابخانه Numpy در پایتون — راهنمای سریع

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

کتابخانه Numpy یک کتابخانه مهم پایتون برای دانشمندان داده محسوب می‌شود و موردی است که حتماً باید با آن آشنا باشند. آرایه‌های Numpy مانند لیست‌های پایتون هستند؛ اما عملکردی بهتر از آن دارند. دستکاری یک آرایه Numpy ساده‌تر از دستکاری لیست پایتون است. شما می‌توانید از یک آرایه Numpy به جای چند لیست پایتون استفاده کنید. همچنین آرایه‌های Numpy محاسباتی سریع‌تر از لیست‌ها دارند و برای اجرای عملیات ریاضیاتی و منطقی بسیار کارآمدتر هستند. بنابراین می‌توان گفت Numpy ابزار مفیدی است که باید آن را بشناسید.

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

Numpy

قبل از هر چیز باید Numpy را با کد زیر در پروژه خود ایمپورت کنید:

1import numpy as np

روش‌های مختلف برای ایجاد آرایه‌های Numpy

برخلاف لیست در پایتون؛ در هنگام استفاده از آرایه‌های Numpy نمی‌توانیم آرایه خالی ایجاد کنیم.

در ادامه روش‌های مختلف برای مقداردهی اولیه آرایه Numpy بسته به نیازهای گوناگون را نشان داده‌ایم:

Numpy

اگر لیستی دارید که می‌خواهید آن را به آرایه Numpy تبدیل کنید، می‌توانید به صورت زیر به راحتی این کار را انجام دهید:

Numpy

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

می‌توان به هر آیتم منفرد یا بخشی از داده‌های آرایه دسترسی یافت. همانند لیست‌ها، عنصر نخست آرایه Numpy در اندیس 0 قرار دارد. برای نمونه [array1[0,0 نشان‌دهنده این است که به ردیف نخست و ستون نخست array1 دسترسی یافته‌ایم. عدد نخست در چندتایی [0,0] نشان‌دهنده اندیس ردیف و عدد دوم نشان‌دهنده اندیس ستون است.

Numpy

Broadcasting

منظور از Broadcast کردن توصیف روش رفتار numpy با شکل‌های گوناگون در طی عملیات حسابی است. Broadcasting روشی است که با آن می‌توانیم حاصلضرب دو آرایه را به دست آوریم.

بر اساس مستندات: «وقتی روی دو آرایه عملیاتی اجرا می‌کنیم، Numpy شکل آن دو را به صورت عنصر به عنصر بررسی می‌کند. بدین ترتیب دو بُعد زمانی با هم مطابقت دارند که دو شرط زیر برقرار باشند:

  1. برابر باشند.
  2. و یا یکی از آن‌ها 1 باشد.

اگر این شرایط برقرار نباشد، یک استثنای ValueError: frames are not aligned صادر می‌شود که نشان می‌دهد آرایه‌هایی با شکل نامطابق داریم.»

Numpy

جهت دریافت موفق محصول خروجی باید از reshape استفاده کنیم. این متد شکل آرایه را طوری تغییر می‌دهد که آن را برای عملیات Numpy سازگار می‌سازد.

Numpy

محاسبه‌های ریاضیاتی و ماتریسی

یکی از دلایلی که آرایه‌های Numpy تا این حد محبوب هستند، این است که دستکاری آن‌ها کاملاً آسان است. بدین ترتیب می‌توان آرایه‌ها را تنها با یک خط کد، الحاق، جمع و ضرب کرد یا ترانهاده آن‌ها را محاسبه کرد.

در ادامه مثال‌هایی از عملیات مختلف حسابی و ریاضیاتی آرایه‌های Numpy را ارائه کرده‌ایم. برخی از عملیات دیگر که در این بخش ارائه نشده را نیز می‌توانید در مستندات (+) ملاحظه کنید.

Numpy

ویژگی جالب دیگر آرایه‌های Numpy، امکان الحاق، افراز، تعیین ترانهاده و دریافت عناصر قطری است:

Numpy

در کد فوق axis = 0 به رایانه اعلام می‌کند که می‌خواهیم ردیف‌ها را درهم الحاق کنیم. اگر به جای آن axis = 1 بیان می‌شد معنی آن چنین بود که می‌خواهیم ستون‌ها را در هم الحاق کنیم.

Numpy

مقایسه و ماسک کردن

کار مفید دیگری که روی آرایه‌های Numpy می‌توان انجام داد، مقایسه یک آرایه با آرایه دیگر است. هنگام مقایسه آرایه‌ها، یک ماتریس بولی بازگشت می‌یابد.

Numpy

می‌توان از این ماتریس بولی برای کارهای مختلفی استفاده کرد. یکی از این کارها ماسک کردن بولی است. زمانی که از یک ماتریس بولی به عنوان یک ماسک استفاده می‌کنیم، می‌توانیم زیرمجموعه‌های خاصی از داده‌ها را که مورد علاقه ما است انتخاب کنیم.

Numpy

به علاوه، طیف متنوعی از عملگرهای مقایسه‌ای دیگر نیز برای مقایسه آرایه‌ها وجود دارد که شامل عملگر == (برابری)،!= (عدم برابری)، <= (کمتر مساوی)، است. حتی می‌توان دو گزاره بولی را به وسیله (&) یا (I) با هم ترکیب کرد.

Numpy

اگر این مطلب برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

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

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