کار با دادهها و اعداد در علم آمار و ریاضیات، یا علوم دیگری که به آن مرتبط هستند، کاری است پیچیده و زمانگیر. زبان برنامهنویسی پایتون، برای آسانتر کردن فرآیند کار با دادههای عظیم، کتابخانههای مختلفی را عرضه کرده است که هر کدام ویژگی خاص خود را دارد.
در این مقاله از سری مقالههای آموزش پایتون آمانج، به سراغ کتابخانه SciPy، یکی دیگر از کتابخانههای محبوب این زبان برنامهنویسی رفتهایم.
آنچه در این نوشته خواهیم داشت
SciPy چیست؟
SciPy مخفف Scientific Python، یکی از کتابخانههای محبوب و کاربردی در زبان برنامهنویسی پایتون است که در محاسبات سنگین و پیچیده ریاضیاتی و علمی مربوط به موضوعات مختلف استفاده میشود.
SciPy بر روی کتابخانه معروف دیگری به نام NumPy ساخته شده است.
در مقاله “نامپای (Numpy): کتابخانهای در خدمت ماشین لرنینگ” به معرفی کتابخانه NumPy پرداخته شده است که پیشنهاد میکنیم آن را مطالعه کنید.
سرعت و دقت پردازش داده در کتابخانه SciPy بسیار بالاست. همچنین دستورات و کلاسهای این کتابخانه امکان دستکاری و مدلسازی هرگونه دیتا را برای برنامهنویس فراهم کرده است.
SciPy شامل مجموعهای از زیربستهها یا Sub -package است که در ادامه به آنها خواهیم پرداخت. اما قبل از آن لازم است به مقایسه SciPy و NumPy بپردازیم.
بیشتر بخوانید: “پکیج چیست؟+(چطور در پایتون پکیج طراحی کنیم)“
مقایسه SciPy و NumPy
SciPy و NumPy هر دو کتابخانههای زبان برنامهنویسی پایتون هستند که برای آنالیز و تحلیل اعداد و ارقام و دادهها استفاده میشوند.
NumPy بیشتر بر روی آرایه داده و عملیات پایهای مربوط به آرایه مانند مرتبسازی آرایهها، اندیسگذاری و مواردی از این قبیل تمرکز دارد. همچنین نامپای شامل مجموعهای از توابع ریاضی است که برای حل مسائلی از جمله جبر خطی، سری فوریه و انتگرالگیری استفاده میشود.
در حالی که SciPy بر روی دادههای رقومی تمرکز دارد. علاوه بر این SciPy در مقایسه با نامپای، توابع ریاضی گستردهتری را شامل میشود.
اما به طور کلی برای تحلیل دادهها با زبان پایتون، شما به هر دو کتابخانه نیاز خواهید داشت.
نصب Scipy
نصب کتابخانه SciPy کار سختی نیست. برای نصب این کتابخانه در سیستم عاملهای مختلف میتوانید به صورت زیر اقدام کنید:
نصب SciPy در ویندوز با دستور pip
Python3 -m pip install --user numpy scipy
نصب SciPy در لینوکس با دستور pip
sudo apt-get install python-scipy python-numpy
نصب SciPy در مک
sudo port install py35-scipy py35-numpy
نصب SciPy به کمک آناکوندا
برای نصب کتابخانه SciPy به کمک آناکوندا، ابتدا باید آن را روی سیستم خود نصب کرده و سپس دستور زیر را در آن تایپ کنید:
conda install -c anaconda scipy
زیر بسته های SciPy
همانطور که در ابتدای این مقاله به آن اشاره شد، SciPy برای انجام عملیات مختلف، زیربستههای متنوعی را دارد که در لیست زیر آمده است:
- cluster : الگوریتمهای خوشهبندی
- constants : مقادیر ثابت فیزیکی و ریاضیاتی
- ffpack : سری فوریه
- integrate : انتگرالگیری و حل معادلات دیفرانسیل
- interpolate : درون یابی
- io : ورودی و خروجی
- linalg : جبر خطی
- ndimage : پردازش تصاویر n بعدی
- odr : رگرسیون فاصله متعامد
- optimize : عملیات بهینهسازی و ریشهیابی
- signal : پردازش سیگنال
- sparse : ماتریسهای پراکنده
- spatial : ساختارها و الگوریتمهای دادههای مکانی
- special : توابع خاص
- stats : توزیعها و توابع آماری
هرکدام از این زیر بستهها، به گوشهای از کاربرد کتابخانه SciPy اشاره میکند. تنها با مشاهده این لیست میتوان متوجه شد که SciPy تا چه حد گستره است و چرا به عنوان محبوبترین کتابخانه زبان برنامهنویسی پایتون و ماشین لرنینگ شناخته شده است.
شما میتوانید جزئیات اطلاعات مربوط به هر کدام از این زیر بسته ها را در داکیومنت رسمی SciPy مطالعه کنید.
برای استفاده از این بستهها، ابتدا باید آنها را فراخوانی کرد. مثلا اگر بخواهیم از cluster استفاده کنیم، باید از دستور زیر تایپ کنیم:
from scipy import cluster
معرفی توابع بسیار کاربردی و پر استفاده در SciPy
SciPy و NumPy دارای توابع مختلفی هستند. بسیاری از مواقع ما با همه این توابع آشنا نیستیم، یا نیاز داریم اطلاعات دقیقتری از این توابع به دست آوریم. تابعهایی وجود دارند که این کار را برای ما انجام میدهند.
تابع ()help
اگر بخواهیم اطلاعات مربوط به یک تابع خاص را به دست آوریم، میتوانیم از تابع help استفاده کنیم. برای استفاده از تابع help دو راه وجود دارد:
- استفاده از تابع help بدون پارامتر
- استفاده از تابع help با پارامتر
در قطعه کد زیر روش استفاده از تابع help در هر دو روش نمایش داده شده است:
from scipy import cluster help(cluster) #with parameter help() #without parameter
همانطور که در کد بالا میبینید، در تابع help در خط دوم، اطلاعات مربوط به زیربسته cluster را برمیگرداند.
تابع help بعدی در خط سوم، ابتدا از کاربر میخواهد تا نام ماژول، زیربسته یا هر چیزی که به دنبال کسب اطلاعات درباره آن است را وارد کند. سپس آن اطلاعات را به کاربر نمایش میدهد.
تابع ()info
تابع info هم مانند help اطلاعات مربوط به یک تابع یا ماژول خاص را نمایش میدهد.
scipy.info(cluster)
تابع ()source
این تابع تنها برای مواردی استفاده میشود که به زبان پایتون نوشته شده باشد. به عبارت دیگر تابع source اطلاعاتی درباره آبجکتهایی که به زبانهای برنامهنویسی دیگر مانند زبان برنامهنویسی C نوشته شده است، را نمایش نمیدهد. برای استفاده از این تابع میتوانید از دستور زیر استفاده کنید:
scipy.source(cluster)
نتیجهگیری
زبان برنامهنویسی پایتون، از آن دسته زبانهای برنامهنویسی است که فرآیند پردازش و تحلیل دادههای بزرگ را برای ما فراهم کرده است. چگونه؟ به کمک تعریف کتابخانههای کاربردی.
در واقع به لطف تمام این امکاناتی که زبان پایتون در اختیار ما قرار داده است، ماشین لرنینگ، هوش مصنوعی، دیپ لرنینگ و… توانستند روز به روز پیشرفت کنند. آن چیزی که ما به عنوان مردم عادی، از نتایج این پیشرفت، مشاهده میکنیم، پیدایش تکنولوژیهای جدید و افزایش روز به روز سرعت رشد آن است. پس جای تعجبی نیست اگر بگوییم ماشین لرنینگ و هوش مصنوعی، دنیای آینده را میسازد.
کتابخانه SciPy که در این مقاله به معرفی آن پرداخته شد، یکی از محبوبترین و گستردهترین و کاربردیترین کتابخانههای پایتون است. برای یادگیری حرفهای و دقیق کتابخانههای پایتون پیشنهاد میشود ابتدا به یادگیری اصول زبان برنامهنویسی پایتون پرداخته و سپس با شرکت در دوره تخصصی آموزش ماشین لرنینگ، سطح خود را در برنامهنویسی پایتون، هوش مصنوعی و ماشین لرنینگ، ارتقا دهید.