در پردازش هایی که بر روی دادههای مختلف انجام میشود مانند پردازش تصویر و یا پردازش دیتاست ها یا پردازش های دیگر data science (علم داده) معمولاً دادهها را به شکل یک آرایه از اعداد در نظر می گیرند. برای مثال میتوان عکسهای دیجیتال را میتوان یک آرایه دوبعدی که هر خانه آرایه یک پیکسل از تصویر را نشان میدهد در نظر گرفت که مقدار رنگ را در آن خانه نمایش میدهد. یا کلیپ های صوتی را میتوان یک آرایه یک بعدی که مقدار صدا را در واحد زمان نمایش میدهد در نظر گرفت. همچنین راه های مختلفی وجود دارد که متن ها را نیز به آرایه ای از اعداد تبدیل کنیم. بنابراین اگر راهی وجود داشته باشد که بتواند به راحتی روی اعداد و آرایه اعداد کار کند میتواند در پردازش آنها کمک حیاتی بکند. در این مطلب کتابخانه numpy را که یک کتابخانه برای کار با اعداد در زبان پایتون است را توضیح می دهیم.
numpy مخفف numerical python است. Numpy کتابخانه ای است که میتوان به کمک آن بر روی دادههای عددی موجود در حافظه عملیات متنوعی انجام داد. آرایه های numpy شبیه به لیست های خود پایتون هستند ولی با این تفاوت که به گونهای در حافظه ذخیره میشوند که میتوان بر روی آنها عملیات مختلفی را به صورت سریعتر انجام داد.
برای نصب numpy میتوانید به سایت https://numpy.org/ مراجعه کنید و نحوه نصب آن را ببینید. همچنین میتوانید بسته نرم افزاری Anaconda را که برای پردازش دادهها در پایتون است را نیز نصب کنید و این کتابخانه در آن موجود می باشد. از آنجایی که در این مطلب من قصد دارم برای برنامه نویسی پایتون از IDE به نام intellij استفاده کنم پس نحوه نصب این کتابخانه را در این محیط توضیح می دهم. برای نصب numpy باید ابتدا پلاگین پایتون روی intellij نصب شده باشد. بعد از آن مراحل زیر را طی میکنیم.
برای اینکه از 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 و جاوا و اندروید کار می کنم. در زمینه های موبایل و وب و ویندوز فعالیت دارم و به طراحی نرم افزار و اصول مهندسی نرم افزار علاقه مندم.
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود