مهدی عادلی فر
بنیانگذار توسینسو و برنامه نویس

Numpy چیست؟ معرفی کتابخانه علوم داده پایتون

 در پردازش هایی که بر روی داده‌های مختلف انجام می‌شود مانند پردازش تصویر و یا پردازش دیتاست ها یا پردازش های دیگر data science (علم داده) معمولاً داده‌ها را به شکل یک آرایه از اعداد در نظر می گیرند. برای مثال می‌توان عکس‌های دیجیتال را می‌توان یک آرایه دوبعدی که هر خانه آرایه یک پیکسل از تصویر را نشان می‌دهد در نظر گرفت که مقدار رنگ را در آن خانه  نمایش می‌دهد. یا کلیپ های صوتی را می‌توان یک آرایه یک بعدی که مقدار صدا را در واحد زمان نمایش می‌دهد در نظر گرفت. همچنین راه  های مختلفی وجود دارد که متن ها را نیز به آرایه ای از اعداد تبدیل کنیم. بنابراین اگر راهی وجود داشته باشد که بتواند به  راحتی روی اعداد و آرایه اعداد کار کند می‌تواند در پردازش آن‌ها کمک حیاتی بکند. در این مطلب کتابخانه numpy را که یک کتابخانه برای کار با اعداد در زبان پایتون است را توضیح می دهیم.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
سرفصل های این مطلب
  1. معرفی Numpy
  2. نصب numpy
  3. استفاده از numpy

معرفی Numpy

numpy مخفف numerical python است. Numpy کتابخانه ای است که می‌توان به کمک آن بر روی داده‌های عددی موجود در حافظه عملیات متنوعی انجام داد. آرایه های numpy شبیه به لیست های خود پایتون هستند ولی با این تفاوت که به گونه‌ای در حافظه ذخیره می‌شوند که می‌توان بر روی آن‌ها عملیات مختلفی را به صورت سریع‌تر انجام داد.

نصب numpy

برای نصب numpy می‌توانید به سایت https://numpy.org/  مراجعه کنید و نحوه نصب آن را ببینید. همچنین می‌توانید بسته نرم افزاری Anaconda را که برای پردازش داده‌ها در پایتون است را نیز نصب کنید و این کتابخانه در آن موجود می باشد. از آنجایی که در این مطلب من قصد دارم برای برنامه نویسی پایتون از IDE به نام intellij استفاده کنم پس نحوه نصب این کتابخانه را در این محیط توضیح می دهم. برای نصب numpy باید ابتدا پلاگین پایتون روی intellij نصب شده باشد. بعد از آن مراحل زیر را طی می‌کنیم.

  1. ابتدا یک پروژه پایتون می سازیم.
  2. از منوی tools/Manage Python packages را انتخاب می کنیم.
  3. ممکن است که ابزار package کردن(pip) روی سیستم شما نصب نباشد که در پایین صفحه به شکل زیر خطا می دهد.
  4. بر روی install packaging tools کلیک کنید تا شروع به نصب ابزار packaging شود.
  5. دقت کنید که برای این کار باید هم پایتون هم pip بر روی سیستم شما نصب باشد.
  6. در این پنجره می‌توانید بر روی علامت + کلیک کرده و از داخل لیست به دنبال numpy بگردید و بعد از پیدا کردن آن بر روی install package کلیک کنید.
  7. در این حالت این بسته دانلود و نصب خواهد شد و می‌توانید از آن استفاده کنید.


python packages 

استفاده از numpy

برای اینکه از numpy استفاده کنیم ابتدا باید آن را import کنیم که با دستور زیر این کار را انجام می دهیم.

import numpy as np

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

a=np.array([1,2,3,4,5,6,7,89,10])

دقت کنید که حتی اگر یک عدد اعشاری داخل این آرایه وجود داشته باشد همه اعداد اعشاری در آرایه ذخیره می‌شوند مثل مثال زیر

import numpy as np
a=np.array([1,2,3,4,5,6,7,8.9,10])
print(a)

که خروجی به شکل زیر می‌شود

[ 1.   2.   3.   4.   5.   6.   7.   8.9 10. ]

numpy این قابلیت را دارد که خودمان بتوانیم نوع داده آرایه را تعریف کنیم برای این کار باید کد را به شکل زیر تغییر دهیم.

a=np.array([1,2,3,4,5,6,7,89,10],dtype='float32')

در این صورت با اینکه هیچ عدد اعشاری داخل آرایه نیست ولی همه اعداد به صورت اعشاری ذخیره می‌شوند.

در numpy می‌توان آرایه هایی را تولید کرد مانند مثال‌های زیر

np.zeros(10, dtype=int)

کد بالا یک آرایه ۱۰ تایی تولید می‌کند که همه خانه‌های آن ۰ است.

np.ones((3, 5), dtype=float)

کد بالا یک آرایه دوبعدی 3*5 تولید می‌کند که همه خانه‌های آن 1 است.

np.full((3, 5), 3.14)

کد بالا یک آرایه 3*5 تولید م یکند که همه خانه‌های آن 3.14 است.

np.arange(0, 20, 2)

کد بالا یک آرایه یک بعدی تولید می‌کند که خانه اول ۰ است و تا 20 جلو می رود. و هر خانه 2 عدد از قبلی بزرگ‌تر است یعنی آرایه زیر

[ 0  2  4  6  8 10 12 14 16 18]


np.linspace(0, 1, 5)

کد بالا یک آرایه یک بعدی بین ۰ تا ۱ تولید می‌کند که ۵ خانه دارد یعنی آرایه زیر

np.random.random((3, 3))

کد بالا یک آرایه ۳*۳ تولید می‌کند که مقادیر هرکدام از خانه‌های آن یک عدد رندوم بین ۰ تا ۱ است.

np.random.randint(0, 10, (3, 3))

کد بالا یک آرایه ۳*۳ تولید می‌کند که مقادیر خانه‌های آن یک عدد رندوم بین ۰ تا ۱۰ خواهد بود.

np.empty(3)

کد بالا یک آرایه یک بعدی به اندازه ۳ ایجاد می‌کند که مشخص نیست که هرکدام از خانه‌های آنچه مقداری داشته باشد.
تا به این قسمت فقط آرایه هایی را که می‌توان با استفاده از numpy تعریف کرد را بررسی کردیم.


مهدی عادلی فر
مهدی عادلی فر

بنیانگذار توسینسو و برنامه نویس

مهدی عادلی، بنیان گذار TOSINSO. کارشناس ارشد نرم افزار کامپیوتر از دانشگاه صنعتی امیرکبیر و #C و جاوا و اندروید کار می کنم. در زمینه های موبایل و وب و ویندوز فعالیت دارم و به طراحی نرم افزار و اصول مهندسی نرم افزار علاقه مندم.

نظرات