مریم درودی
مریم درودی
خواندن ۵ دقیقه·۴ سال پیش

کتابخانه‌ی NumPy پایتون را از اینجا شروع کنید!


قبل از اینکه هر چیزی رو یاد بگیریم، لازمه به 2 سوال جواب بدیم (البته به خودمون!) :

  1. چرا باید یاد بگیرم؟
  2. چطوری یاد بگیرم؟

توی این نوشته اول سعی می‌کنم به سوال شماره 1 جواب بدم و بعد یک الفبای مقدماتی از ورود به دنیای NumPy رو می‌نویسم.

چرا یادگیری NumPy ضروری است؟

وقتی می‌خواین قدم به دنیای علم داده بذارین، تا چشم کار می کنه ریاضیه... زبان پایتون علی رغم تموم قدرت و گستردگی که داره برای محاسبات عددی طراحی نشده و در این زمینه کند عمل می‌کنه!

پس راه حل چیه؟

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

کتابخانه NumPy یکی از قدرتمندترین کتابخانه‌های زبان پایتون به شمار میره که برای محاسبات آرایه‌ای، انتخاب بی‌نظیریه.

چرا این حرف رو میزنم؟ دلایل زیر رو بخونین :)

  1. کتابخانه NumPy برای ذخیره‌ی داده‌ها از حافظه‌ی خیلی کمتری استفاده می‌کنه. و این به معنای واقعی یه حسنه !
  2. توی NumPy می‌تونین به راحتی یه ماتریس n x n بسازین. و همونطور که میدونین توی علم داده با ماتریس ها طرفین !
  3. توی NumPy برای تمام محاسبات ماتریسی اپراتور تعریف شده و به سادگی می‌تونین محاسباتتون رو انجام بدین و نیاز به تعریف کدهای طولانی و ریاضیاتی نیست. مثلا می‌تونین دترمینان حساب کنین یا ترانهاده رو بدست بیارین.
  4. سریعه ^_^ در این مورد یه مقاله توی سایت Geeksforgeeks منتشر شده که با محاسبات عددی نشون میده آرایه‌های NumPy دقیقا چند ثانیه از لیست‌های پایتونی سریع‌تره ! اگه دوست داشتین (البته توصیه می‌کنم دوست داشته باشین! ) می‌تونین یه نگاه به " ?Why Numpy is faster in Python " بندازین.

امیدوارم تا اینجا قانع شده باشین که NumPy چیز خوبیه :))

شروع NumPy به همین سادگی

خب همونطور که می‌دونین توی پایتون وقتی می‌خوایم از یه کتابخانه استفاده کنیم، باید فراخوانیش کنیم و این کار رو با ایمپورت کردن انجام می‌دیم.

نکته: تعدادی از کتابخانه‌ها در پایتون به صورت دیفالت نصب نیستن و باید از دستور pip پکیج مورد نظرتون رو نصب کنید. ولی من یه توصیه بهتر دارم ( البته توصیه من نیست :)) توصیه‌ی اهل علم داده‌اس! ) و اون هم اینه که به جای پایتون از آناکوندا ( دانلود آناکوندا ) استفاده کنین. و اون به صورت دیفالت تمام پکیج‌های مربوط به علم داده رو با خودش نصب می‌کنه و فقط کافیه چیزی رو که می‌خواین import کنین.


> پس برای شروع می‌نویسیم:

import numpy as np

بین کسایی که کارای مربوط به داده کاوی انجام میدن رایجه که numpy رو تحت عنوان np فراخوانی می‌کنن تا دستورات بعدی رو به صورت خلاصه بنویسن.

توی NumPy به جای لیست از آرایه استفاده می‌کنیم.

> ساخت آرایه در NumPy:

np.array(Example list)

برای ساخت یک آرایه‌ی NumPy کافیست یک لیست پایتونی به آن بدهیم.


شاید براتون این سوال پیش بیاد که این خروجی چه فرقی با لیست پایتونی داره ! و باید بهتون بگم:

با دقت‌تر نگاه کنید :)

بین هر آیتم ویرگول قرار نگرفته و از اون مهم‌تر،

> بررسی نوع آرایه:

type(Example array)

که در نهایت می‌بینین که یه آرایه‌ی NumPy دارین.


نکته: اگر یک لیست عادی بدهیم، یک آرایه یک بعدی یا اصطلاحا یک ماتریس با یک سطر ساخته می شود. اما اگر بخواهیم یک آرایه چند بعدی بسازیم، کافی است لیستی از لیست ها بسازیم.


یادآوری ریاضیات:

آرایه یک بعدی (1xn) = بردار (Vector)

آرایه دو بعدی (mxn) = ماتریس (Matrix)

آرایه سه بعدی (mxnxp) = تنسور (Tensor)

> ساخت ماتریس صفر:

np.zeros((row,column))

که این دستور با هر تعداد سطر و ستونی که بخواین براتون ماتریس صفر میسازه.


> ساخت ماتریس یک:

np.ones((row,column))

که با این دستور با هر تعداد سطر و ستونی که بخواین براتون ماتریس با آیتم یک میسازه.


> ساخت ماتریس یکه:

np.eye(number of rows and columns)

همانطور که میدانید ماتریس یکه یک ماتریس مربعی با قطر اصلی یک است.


> ساخت ماتریس با عدد دلخواه:

np.full((row,column), the number)

که با اینکار یک ماتریس nxm با عدد ثابت ساختیم.

نکته: می توانیم به جای اینکار، ماتریس یک را در عدد ثابت مورد نظر ضرب کنیم. تنها تفاوت این است که این بار به جای Integer، خروجی Float است.


> ساخت ماتریس در یک بازه مورد نظر:

np.arange(The first number, The last number, Common difference)

که خروجی ماتریسی با 1 سطر و n ستون است. اعداد ماتریس تصاعد عددی با قدرنسبت داده شده هستند. اگر قدر نشبت ندهیم آن را به صورت دیفالت 1 در نظر می‌گیرد. و اگر به جای عدد اول و آخر، فقط یک عدد بدهیم از صفر تا عدد داده شده نوشته می شود.


> پیدا کردن تعداد سطر و ستون ماتریس:

example_array.shape

که در این حالت Rank ماتریس (یعنی تعداد بعدهای آن) و همینطور Shape ماتریس (یعنی سایز آن در هر بعد) به شما داده می‌شود.


> پیدا کردن تعداد سطرهای ماتریس:

len(example_array)


> پیدا کردن مجموع آیتم‌های یک آرایه عددی:

example_array.sum()


> پیدا کردن بیشترین و کمترین آیتم یک آرایه عددی:

example_array.max() example_array.min()


> محاسبه میانگین آیتم‌های یک آرایه عددی:

example_array.mean()

البته توجه کنید تمام این موارد به دو شکل زیر قابل نوشتن است.


> محاسبه انحراف استاندارد:

example_array.std()


یادآوری ریاضیات:

تعریف انحراف استاندارد: جذر واریانس

تعریف واریانس: مجموع مربعات انحراف‌ها تقسیم بر یکی کمتر از تعداد

تعریف انحراف: اختلاف هر داده از میانگین


> پیدا کردن بیشترین index:

example_array.argmax()


> ترکیب کردن دو ماتریس:

list(zip(array_ex1,array_ex2)


> ترکیب دو ماتریس به صورت ردیفی:

np.vstack( [array_ex1 , array_ex2) ]


> ترکیب دو ماتریس یه صورت ستونی:

np.hstack( [array_ex1 , array_ex2) ]


> گرفتن قطر اصلی ماتریس:

np.array(example_array)

> تکرار ماتریس به صورت سطری:

np.array([example_matrix] * number)


> تکرار آرایه به صورت سطری:

np.repeat([example_matrix] , number)


> تولید ماتریس شامل یک تصاعد حسابی:

np.linspace(first_number, last_number, number)

تفاوت این دستور با دستور arrange در است که در دستور arrange عدد آخر قدرنسبت است، ولی در دستور linspace تعداد مورد نظر را می دهیم و یک بازه به تعدادی که میخواهیم تقسیم می شود.


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

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





numpypythonپایتونعلم دادهمریم درودی
یک متخصص سئو در مسیر تبدیل شدن به دانشمند داده
شاید از این پست‌ها خوشتان بیاید