آموزش NumPy – کتابخانه پایتون
NumPy یک کتابخانه قدرتمند برای محاسبات عددی در پایتون است. این کتابخانه از آرایهها و ماتریسهای بزرگ و چندبعدی پشتیبانی میکند و مجموعهای از توابع ریاضی را برای کار با این آرایهها ارائه میدهد. اشیاء آرایه NumPy از نظر حافظه کارآمدتر و از نظر عملکرد بهتر از لیستهای پایتون هستند، که برای کارهایی در محاسبات علمی، تحلیل داده و یادگیری ماشین ضروری است. این آموزش NumPy ویژگیهای اصلی و تمام مفاهیم از پایه تا پیشرفته را در ۱۰ بخش پوشش میدهد.
بخش ۱: آرایههای NumPy
آرایه NumPy که به آن ndarray نیز گفته میشود، یک شبکه از مقادیر است که همه از یک نوع هستند. این آرایهها میتوانند یکبعدی (مانند لیست)، دوبعدی (مانند ماتریس) یا چندبعدی (مانند جدول با سطرها و ستونها) باشند.
- برای درک تمام مبانی آرایههای NumPy – توضیح انواع آنها (یکبعدی و چندبعدی)، ویژگیهای کلیدی (محور، شکل، رتبه، dtype): مبانی آرایههای NumPy
بخش ۲: ایجاد آرایهها در NumPy
آرایههای NumPy با استفاده از تابع np.array()
ایجاد میشوند، که لیستها، تاپلها یا سایر دنبالهها را به یک آرایه NumPy تبدیل میکند. شما میتوانید انواع مختلف آرایهها را ایجاد کنید، مانند آرایههای یکبعدی از یک لیست ساده از عناصر، آرایههای دوبعدی از لیستهای تو در تو که سطرها و ستونها را نشان میدهند، و آرایههای چندبعدی با تو در تو کردن بیشتر لیستها.
مثال یک آرایه یکبعدی ساده:
import numpy as np arr = np.array([1, 2, 3, 4, 5]) print(arr)
خروجی:
[1 2 3 4 5]
- برای درک تمام روشهای ایجاد آرایه، به صفحه ایجاد آرایه NumPy مراجعه کنید.
بخش ۴: عملیات در آرایه NumPy
آرایههای NumPy چهار نوع عملیات اساسی ارائه میدهند که امکان دستکاری کارآمد دادهها را با انجام محاسبات عنصر به عنصر، توابع ریاضی، پردازش رشتهها و مقایسههای منطقی فراهم میکنند.
- عملیات دودویی: انجام مقایسههای عنصر به عنصر (مانند بزرگتر از، مساوی با) و عملیات منطقی مانند AND یا OR.
- عملیات ریاضی: توابعی مانند
sum()
،mean()
وsqrt()
امکان محاسبات عددی سریع و کارآمد را فراهم میکنند. - عملیات رشتهای: از توابع
np.char()
برای عملیاتی مانند الحاق، بزرگنویسی و جایگزینی رشتهها در آرایهها استفاده کنید. - عملیات حسابی: امکان جمع، تفریق، ضرب و تقسیم عنصر به عنصر سریع در آرایهها را فراهم میکنند.
بخش ۵: برش و ایندکسگذاری در آرایه NumPy
ایندکسگذاری برای دسترسی به عناصر خاص در یک آرایه بر اساس موقعیت یا شرایط آنها استفاده میشود، در حالی که برش برای استخراج زیرمجموعهای از عناصر از یک آرایه با استفاده از سینتکس array[start:stop:step]
استفاده میشود. این کار برای آرایههای یکبعدی و چندبعدی کار میکند و انتخاب سطرها، ستونها یا محدودههای خاص داده را آسان میکند.
- برش و ایندکسگذاری
- تمرین عملی با مثالهای بیشتر از ایندکسگذاری آرایه
- برش آرایههای چندبعدی برای دسترسی به سطرهای مختلف
بخش ۶: تغییر شکل و بازشکلدهی آرایه
شکل یک آرایه را میتوان بهعنوان تعداد عناصر در هر بعد تعریف کرد. میتوان با استفاده از ویژگی shape
به آن دسترسی پیدا کرد، که یک تاپل نشاندهنده ابعاد آرایه را برمیگرداند. در این بخش، نحوه تغییر شکل یک آرایه NumPy را بررسی خواهیم کرد. این شامل بازشکلدهی، مسطحسازی و تغییر ساختار آرایهها برای تطبیق با کارهای خاص است.
- برای تغییر شکل آرایه NumPy
- مسطحسازی آرایه NumPy – تغییر ترتیب
بخش ۷: مرتبسازی و جستجو در آرایه
مرتبسازی در NumPy به معنای چیدمان عناصر یک آرایه به ترتیب خاص، صعودی یا نزولی است. تابع np.sort()
برای این منظور استفاده میشود. بهطور پیشفرض، عناصر را به ترتیب صعودی مرتب میکند و ترتیب نزولی را میتوان با استفاده از تکنیکهای برش مانند [::-1]
به دست آورد.
- مرتبسازی آرایه NumPy
- انواع مختلف تکنیکهای مرتبسازی
جستجو در NumPy شامل یافتن مقادیر یا شرایط خاص در یک آرایه است. در این بخش، تکنیکهای مختلف برای جستجو در آرایههای NumPy را بررسی خواهیم کرد، مانند جستجوی مقادیر خاص با استفاده از np.where()
، np.searchsorted()
و np.nonzero()
که اندیسهای تمام عناصر غیرصفر را برمیگرداند.
- جستجو در آرایه NumPy
- آرایه NumPy – جستجو، مرتبسازی، شمارش
بخش ۸: ترکیب، تقسیم و تجمیع آرایهها
ترکیب آرایهها شامل ادغام آرایههای کوچکتر در یک آرایه بزرگتر است. آرایهها میتوانند بهصورت عمودی، افقی یا در امتداد هر محور خاصی ترکیب شوند. این شامل تکنیکهایی مانند الحاق و انباشت (افقی، عمودی) است.
- ترکیب آرایههای NumPy
- ترکیب آرایههای 1-D و 2-D
تقسیم آرایهها فرآیند تقسیم یک آرایه بزرگتر به آرایههای کوچکتر و قابل مدیریت است. این تقسیم میتواند در امتداد سطرها، ستونها یا محورهای دیگر انجام شود.
- تقسیم آرایهها در NumPy
تجمیع به معنای خلاصهسازی دادهها در یک آرایه با اعمال عملیاتهای ریاضی مانند جمع، یافتن میانگین یا تعیین مقادیر حداکثر/حداقل است.
- تابع جمع – استفاده از
numpy.sum()
برای جمع عناصر آرایه - تابع میانگین – استفاده از
numpy.mean()
برای یافتن میانگین عناصر آرایه
بخش ۹: عملیات ماتریسی
در NumPy، یک ماتریس بهعنوان یک آرایه دوبعدی نمایش داده میشود. عملیات ماتریسی بخشی اساسی از جبر خطی هستند. جمع، تفریق و ضرب ماتریسها برای دستکاری ماتریسها اساسی هستند. NumPy ابزارهای سادهای برای کار با ماتریسها ارائه میدهد. برای مثال، np.transpose()
ماتریس را با تبدیل سطرها به ستونها و ستونها به سطرها برمیگرداند. اگر میخواهید شکل یک ماتریس را تغییر دهید، مانند تبدیل یک سطر به چند سطر، از np.reshape()
استفاده میکنید. برای سادهسازی یک ماتریس و تبدیل آن به یک لیست واحد از مقادیر، میتوانید از np.flatten()
استفاده کنید. در نهایت، np.dot()
برای ضرب دو ماتریس استفاده میشود.
- عملیات ماتریسی در NumPy
- ترانهاده ماتریس
- دترمینان و معکوس ماتریس
- ضرب نقطهای دو بردار
- یافتن واریانس ماتریس
بخش ۱۰: جبر خطی در آرایه NumPy
مقادیر ویژه و بردارهای ویژه مفاهیم اساسی در جبر خطی هستند. NumPy یک ماژول قوی numpy.linalg
ارائه میدهد که امکان انجام عملیات جبر خطی مختلف را بهطور کارآمد فراهم میکند.
- جبر خطی در آرایه NumPy
- فاکتورگیری QR آرایه NumPy
- محاسبه مقادیر ویژه
بخش ۱۱: NumPy و دادههای تصادفی
NumPy یک ماژول قدرتمند، numpy.random
، برای تولید دادههای تصادفی بهطور کارآمد ارائه میدهد که به کاربران امکان ایجاد اعداد تصادفی، نمونهها و آرایهها برای انواع توزیعها را میدهد.
این ماژول امکان تولید اعداد صحیح تصادفی، اعداد اعشاری تصادفی بین ۰ و ۱ و نمونههای تصادفی از توزیعهای نرمال، یکنواخت و سایر توزیعهای آماری را فراهم میکند. برای مثال: اگر میخواهید ۵ عدد تصادفی از توزیع نرمال با استفاده از NumPy تولید کنید، روی این لینک کلیک کنید.
بخش ۱۲: NumPy پیشرفته
به بخش پیشرفته NumPy خوش آمدید! اگر قبلاً مبانی آرایهها را یاد گرفتهاید، آمادهاید تا برخی از ابزارهای قدرتمند که کار با دادهها را سریعتر و آسانتر میکنند، کشف کنید.
- پخش آرایه NumPy: پخش به شما امکان میدهد عملیاتهایی روی آرایههایی با شکلهای مختلف انجام دهید بدون اینکه اندازه یا شکل آنها را تغییر دهید.
- بردارسازی آرایه NumPy: به جای استفاده از حلقههای کند، بردارسازی از توابع بهینهشده برای کار روی کل آرایه بهطور همزمان استفاده میکند.
- توابع جهانی در NumPy: Ufuncs توابع داخلی در NumPy هستند که عملیاتهایی روی هر عنصر یک آرایه انجام میدهند. مثال:
np.add()
برای جمع،np.sqrt()
برای جذر وnp.sin()
برای مقادیر سینوس. - کار با تصاویر در NumPy: در NumPy، میتوانید تصاویر را بهعنوان آرایههای چندبعدی (مانند آرایههای 2D یا 3D) در نظر بگیرید.
برای تمرینهای عملی، سوالات و راهحلها برای مشکلات NumPy، به تمرینهای عملی NumPy مراجعه کنید.
دیدگاهتان را بنویسید