نوروز 1404مبارک! تا پایان امشب - بیشترین تخفیف تا امروز (%۷۰ و %۹۰) ویژه جشنواره نوروزی 1404 فقط 24 ساعت دریافت

آموزش جامع پانداس (pandas)؛ تحلیل و پردازش داده در پایتون


پانداس (pandas) چیست؟

آموزش جامع پانداس (pandas)؛ تحلیل و پردازش داده در پایتون

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

پانداس (pandas) محبوب ترین کتابخانه نرم افزاری برای پردازش و تحلیل داده در زبان برنامه نویسی پایتون هست.

معرفی پانداس (pandas)

پانداس یک کتابخانه نرم افزاری متن باز (open source) هست که روی پایتون ساخته شده و برای تحلیل و پردازش داده استفاده میشه. این کتابخانه ساختارهای داده ای (data structures) مخصوصی رو ارائه میده که به طور خاص برای مدیریت مجموعه داده های جدولی (tabular datasets) طراحی شدن و یک رابط کاربری ساده پایتونی (Python API) برای کار با داده ها فراهم میکنه.

پانداس به عنوان یک افزونه برای پایتون، عملیات مختلفی مثل بارگذاری، تراز کردن، ادغام و تبدیل داده ها رو به شکلی کارآمد اجرا میکنه.

محبوبیت پانداس به عنوان یک ابزار تحلیل داده به خاطر انعطاف پذیری بالا و عملکرد بهینه اون هست. نام پانداس (pandas) از اصطلاح پنل دیتا (panel data) گرفته شده، که به مجموعه داده هایی اشاره داره که شامل چندین بازه زمانی مختلف هستن و تاکیدش روی ساختارهای داده ای انعطاف پذیر برای مدیریت مجموعه داده های دنیای واقعیه.

پانداس از فرمت های داده ای ساختار یافته مثل جداول (tables)، ماتریس ها (matrices) و داده های سری زمانی (time series) پشتیبانی میکنه. این کتابخانه ابزارهایی برای پردازش داده های خام و نامرتب فراهم میکنه و اون ها رو به فرمت های ساختار یافته و تمیز برای تحلیل تبدیل میکنه. برای دستیابی به عملکرد بالا، عملیات محاسباتی سنگین در پس زمینه (back-end) با استفاده از C یا Cython پیاده سازی شدن.

با این حال، کتابخانه پانداس به طور ذاتی چندنخی (multi-threaded) نیست، که میتونه باعث بشه روی سیستم های چند هسته ای مدرن (multi-core platforms) عملکرد بهینه ای نداشته باشه و پردازش مجموعه داده های خیلی بزرگ رو محدود کنه. اما کتابخانه ها و افزونه های جدید در اکوسیستم پایتون این محدودیت رو تا حد زیادی برطرف میکنن.

پانداس همچنین با ابزارهای علمی و تحلیلی دیگه در اکوسیستم داده محور پایتون به خوبی یکپارچه (integrate) میشه و امکان استفاده همزمان از اون ها رو فراهم میکنه.

پانداس چطور کار میکنه؟

هسته اصلی کتابخانه پانداس (pandas) بر پایه ساختار داده ای دیتافریم (DataFrame) طراحی شده که برای مدیریت داده های جدولی (tabular) و آماری (statistical) استفاده میشه.

دیتافریم (DataFrame) در پانداس یک جدول دو بعدی شبیه به آرایه (array like table) هست که هر ستون (column) مقادیر یک متغیر خاص رو نمایش میده و هر سطر (row) مجموعه ای از مقادیر مرتبط با اون متغیرها رو در خودش داره. داده هایی که در دیتافریم ذخیره میشن میتونن شامل اعداد (numeric)، دسته بندی شده (categorical) یا متنی (textual) باشن، که این امکان رو به پانداس میده تا مجموعه داده های متنوعی رو پردازش و مدیریت کنه.

پانداس از فرمت های مختلف فایل مثل سی اس وی (CSV)، اس کیو ال (SQL) و صفحات گسترده (spreadsheets) برای وارد کردن (import) و صادر کردن (export) داده ها پشتیبانی میکنه. این قابلیت ها همراه با ابزارهای پردازش و تغییر شکل داده ها باعث میشه که پانداس داده های جدولی و آماری رو تمیز (clean)، تغییر (shape) و تحلیل (analyze) کنه.

در نهایت، دیتافریم به عنوان هسته اصلی پانداس به کاربران کمک میکنه که داده های ساختاریافته رو به صورت بهینه مدیریت و تحلیل کنن، از وارد کردن و خروجی گرفتن از داده های خام گرفته تا اجرای وظایف پیچیده پردازش داده برای یادگیری ماشین (machine learning) و فراتر از اون.

پانداس چیست

پانداس این امکان رو فراهم میکنه که داده های جدولی (tabular data) رو در فرمت های مختلف مثل سی اس وی (CSV)، اس کیو ال (SQL) و فایل های صفحه گسترده (spreadsheet files) وارد (import) یا صادر (export) کنین.

پانداس چیست

پانداس همچنین ابزارهای مختلفی برای پردازش داده (data manipulation) و تمیز کردن داده (data cleaning) ارائه میده، که شامل انتخاب یک زیرمجموعه (selecting a subset)، ایجاد ستون های مشتق شده (creating derived columns)، مرتب سازی (sorting)، اتصال داده ها (joining)، پر کردن مقادیر (filling)، جایگزینی (replacing)، محاسبه آمار خلاصه (summary statistics) و ترسیم نمودارها (plotting) میشه.

پانداس چیست

پانداس برای چه نوع داده هایی مناسب هست؟

بر اساس گفته های مدیران پایگاه پکیج های پایتون (Python Package Index) که مخزن نرم افزاری زبان برنامه نویسی پایتون هست، پانداس (pandas) برای کار با انواع مختلفی از داده ها بسیار مناسب هست، از جمله:

  • داده های جدولی (Tabular data) با ستون هایی که نوع های داده ای متفاوتی دارن، مثل یک جدول SQL یا فایل صفحه گسترده (spreadsheet)
  • داده های سری زمانی (time-series data) که میتونن ترتیبی (ordered) یا بدون ترتیب (unordered) باشن و لزوما دارای فواصل ثابت (fixed-frequency) نباشن
  • داده های ماتریسی دلخواه (Arbitrary matrix data) که میتونن همگن (homogeneous) یا ناهمگن (heterogeneous) باشن و دارای برچسب های سطر و ستون باشن
  • هر نوع مجموعه داده آماری یا مشاهده ای (observational/statistical datasets)، حتی اگر داده ها برچسب گذاری نشده باشن هم میشه اون ها رو در یکی از ساختارهای داده ای پانداس قرار داد و پردازش کرد

مزایای استفاده از پانداس (pandas)

کتابخانه پانداس مزایای زیادی برای دانشمندان داده (data scientists) و توسعه دهندگان (developers) داره که اون رو به ابزاری ارزشمند برای تحلیل و پردازش داده تبدیل میکنه. از جمله مهم ترین مزایای پانداس میشه به موارد زیر اشاره کرد:

مدیریت داده های ناموجود (NaN)

پانداس کار با مجموعه داده هایی که دارای مقادیر از دست رفته (NaN) هستن رو ساده سازی میکنه، چه این داده ها عددی باشن و چه غیر عددی

عملکرد گروه بندی (GroupBy)

پانداس عملیات گروه بندی (GroupBy) رو به شکلی بهینه انجام میده و این امکان رو فراهم میکنه که کاربران الگوی split apply combine رو برای تجمیع (aggregation) و تبدیل داده ها (transformation) اجرا کنن

انعطاف پذیری در تغییر اندازه دیتافریم (DataFrame size mutability)

ستون ها رو میشه اضافه یا حذف کرد، چه در دیتافریم ها (DataFrame) و چه در ساختارهای داده ای چندبعدی

همگام سازی خودکار و صریح داده ها

پانداس اشیایی مثل سری ها (Series) و دیتافریم ها رو به صورت خودکار بر اساس برچسب های اون ها (labels) همگام سازی میکنه، که باعث میشه محاسبات ساده تر بشن

مستندات کامل (Thorough Documentation)

پانداس دارای رابط کاربری ساده (simplified API) و مستندات کاملا توضیح داده شده هست که باعث میشه یادگیری اون سریع تر و راحت تر باشه. آموزش های کوتاه و نمونه کدهای ساده به کاربران جدید کمک میکنه که به سرعت شروع به کدنویسی کنن

ابزارهای ورودی و خروجی (I/O tools)

پانداس از فرمت های مختلف داده مثل CSV، اکسل (Excel)، اس کیو ال (SQL) و HDF5 برای ورود و خروجی داده ها پشتیبانی میکنه

داده های آماده برای مصورسازی (Visualization-ready datasets)

پانداس به راحتی داده ها رو به شکل نمودار نمایش میده و مستقیما از روی دیتافریم میشه تصویرسازی داده ها (plotting) رو انجام داد

تغییر شکل و محوری سازی انعطاف پذیر (Flexible reshaping and pivoting)

امکان تغییر شکل داده ها و اجرای محوری سازی (pivoting) با فراخوانی ساده یک تابع فراهم شده که به آماده سازی داده ها برای تحلیل یا مصورسازی کمک میکنه

برچسب گذاری سلسله مراتبی محور (Hierarchical axis labeling):

پانداس ایندکس گذاری سلسله مراتبی (hierarchical indexing) رو پشتیبانی میکنه، که امکان مدیریت داده های چندسطحی در یک دیتافریم رو میده

عملکردهای سری زمانی (Time-series functionality):

پانداس شامل ابزارهای تحلیل سری زمانی مثل تولید محدوده های زمانی (date range generation)، تبدیل فرکانس (frequency conversion)، محاسبات روی پنجره متحرک (moving window calculations) و تحلیل تاخیر (lag analysis) هست

کاربردهای پانداس (pandas) در دنیای واقعی

طبق آمار دانلود از پای پای (PyPi)، پانداس به یکی از ابزارهای پرکاربرد برای دانشمندان داده (data scientists) و تحلیل گران (analysts) تبدیل شده و امکان مدیریت بهینه مجموعه داده ها (datasets) رو در صنایع مختلف فراهم میکنه. قابلیت های تحلیل و پردازش داده در این کتابخانه، اون رو به یکی از بهترین گزینه ها برای حل مسائل دنیای واقعی تبدیل کرده.

ادغام با SQL و تحلیل داده ها

پانداس با پایگاه داده های SQL ادغام (integrate) میشه و این امکان رو به کاربران میده که مستقیما از جداول SQL داده ها رو بخونن یا در اون ها ذخیره کنن. با وارد کردن داده ها (importing data) به یک دیتافریم (DataFrame)، کاربران میتونن از قابلیت های پانداس برای تحلیل داده استفاده کنن و همزمان از SQL برای کوئری زدن (querying) و مدیریت مجموعه داده ها بهره ببرن.

مصورسازی و ارائه بینش (Visualization and Insights)

پانداس این امکان رو داره که داده های جدولی (tabular data) رو تمیز (clean)، فیلتر (filter) و تبدیل (transform) کنه تا مجموعه داده ها برای استفاده در کتابخانه های پیشرفته ترسیم نمودار مثل متپلات لیب (Matplotlib) و سیبورن (Seaborn) آماده بشن. مثلا پانداس میتونه داده های گم شده (missing data) رو مدیریت کنه و داده های سری زمانی (time series data) رو فرمت بندی مجدد کنه تا روندها (trends) و بینش های معنادار ایجاد بشن.

تحلیل سری های زمانی (Time-Series Analysis)

پانداس شامل عملکردهای پیشرفته تحلیل سری های زمانی هست که برای کارهایی مثل بررسی قیمت سهام، تحلیل الگوهای آب و هوایی و پردازش داده های سنسورهای IoT استفاده میشه. قابلیت های کلیدی شامل:

  • تولید محدوده های زمانی (date range generation)
  • تبدیل فرکانس (frequency conversion)
  • تغییر شکل پیشرفته (advanced reshaping) برای مجموعه داده های زمانی

پردازش پیچیده داده ها (Complex Data Manipulation)

عملیات ادغام (merging)، اتصال (joining) یا الحاق (concatenating) چند دیتافریم در پانداس بسیار ساده انجام میشه. مثلا متد کانکت (concat) همراه با ابزارهایی مثل اپند (append) به کاربران این امکان رو میده که چندین منبع داده مختلف رو ترکیب کنن. همچنین پانداس متد گروه بندی (GroupBy) رو ارائه میده که امکان تجمیع و تبدیل داده ها (aggregation and transformation) رو فراهم میکنه و از الگوی پیشرفته تقسیم – اعمال – ترکیب (split-apply-combine) پشتیبانی میکنه.

تبدیل داده های جدولی (Tabular Data Transformation)

پانداس ابزارهای متنوعی برای تبدیل داده های جدولی داره، از جمله:

  • تغییر شکل داده ها (reshaping)
  • محوری سازی (pivoting)
  • ایندکس گذاری سلسله مراتبی (hierarchical indexing)

برای مثال، کاربران میتونن داده های فروش رو در مناطق مختلف تحلیل کنن یا با ایجاد جداول محوری (pivot tables) دید بهتری از رفتار مشتریان به دست بیارن.

مدیریت داده های ناموجود (Handling Missing Data)

یکی از قابلیت های کلیدی پانداس مدیریت داده های از دست رفته (missing data) هست. کاربران میتونن مقادیر NaN رو به روش های مختلفی پر کنن (fill)، میان یابی کنن (interpolate) یا حذف کنن (drop) تا مجموعه داده ای تمیز (clean) و کامل (complete) برای تحلیل یا استفاده در مدل های یادگیری ماشین (machine learning pipelines) ایجاد بشه.

پایتون و پانداس

از اونجایی که پانداس (pandas) روی زبان برنامه نویسی پایتون (Python) ساخته شده، مهمه که بدونیم چرا پایتون یک ابزار قدرتمند برای علم داده (data science) و تحلیل داده (data analysis) محسوب میشه.

پایتون از زمان ایجادش در سال ۱۹۹۱ به شدت محبوب شده و به یکی از برترین زبان های برنامه نویسی در زمینه توسعه وب، تحلیل داده و یادگیری ماشین تبدیل شده.

سادگی (simplicity) و خوانایی (readable syntax) این زبان باعث شده که هم افراد مبتدی و هم کاربران حرفه ای بتونن روی حل مسائل تمرکز کنن و از پیچیدگی های زبان های سطح پایین دور بمونن. این سهولت استفاده با اکوسیستم گسترده کتابخانه ها و ابزارها مثل پانداس، نامپای (NumPy)، متپلات لیب (Matplotlib) و ژوپیتر (Jupyter) تقویت شده.

پانداس و قدرت API پایتون

API پانداس از ویژگی های قدرتمند پایتون استفاده میکنه و قابلیت های پیشرفته ای برای پردازش و تحلیل داده فراهم میکنه. توابعی مثل متدهای رشته ای (str methods) برای عملیات روی رشته ها (string operations) و پشتیبانی از توابع لامبدا (lambda functions) این امکان رو میدن که الگوریتم های پیچیده رو مستقیما درون جریان کاری (workflow) اجرا کنین. همچنین سازگاری پایتون با نامپای (NumPy) باعث میشه محاسبات عددی (numerical computations) به راحتی با قابلیت های پردازش داده پانداس یکپارچه بشه.

پایتون و یکپارچگی با سیستم های خارجی

اکوسیستم پایتون فراتر از این هاست و قابلیت ارتباط با سیستم ها و سرویس های خارجی از طریق API wrappers رو داره. این ویژگی باعث میشه که پانداس رو درون خطوط پردازش داده (data pipelines) بزرگ تر ادغام کنین، چه روی سیستم های محلی (local systems) و چه در محیط های ابری (cloud based environments).

برای مصورسازی داده (data visualization)، کتابخانه هایی مثل متپلات لیب (Matplotlib) به خوبی با پانداس هماهنگ میشن و امکان ایجاد نمودارهای واضح و موثر رو فراهم میکنن.

مستندات رسمی و ابزارهای تعاملی

مستندات رسمی پایتون و پانداس یکی از بهترین منابع آموزشی برای یادگیری این زبان و کتابخانه هاش هستن. این مستندات شامل راهنماهای جامع و نمونه کدهای آموزشی هستن. همراه با ابزارهای تعاملی مثل ژوپیتر نوت بوک (Jupyter Notebooks)، این منابع باعث میشن پایتون یک گزینه محبوب برای توسعه و تست الگوریتم های داده محور باشه.

جمع بندی

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

چطور شتابدهی پردازنده گرافیکی (GPU Acceleration) دیتافریم های پانداس رو بهبود میده؟

پردازنده های مرکزی (CPU) بهینه شده اند برای پردازش های متوالی و سریالی (sequential, serial processing)، اما در مقابل، پردازنده های گرافیکی (GPU) دارای معماری کاملا موازی (massively parallel architecture) هستن که شامل هزاران هسته کوچک تر میشن و برای اجرای همزمان چندین وظیفه (tasks) طراحی شدن.

این موازی سازی (parallelism) باعث میشه که پردازنده های گرافیکی بسیار سریع تر از پردازنده های مرکزی برای پردازش مجموعه داده های بزرگ (large datasets) و اجرای وظایف محاسباتی سنگین (compute intensive tasks) باشن.

کارایی بالا و هزینه پایین هر واحد عملیات شناور (FLOP – Floating Point Operations Per Second) باعث شده که GPUها تحولی در پردازش های سنگین ایجاد کنن، مخصوصا در زمینه های علم داده (data science) و یادگیری ماشین (machine learning).

پانداس چیست

شتابدهی پردازنده گرافیکی (GPU Acceleration) برای پردازش دیتافریم های پانداس

برای وظایف علم داده (data science) مثل پردازش دیتافریم های پانداس (pandas DataFrame processing) یا اجرای عملیات روی مجموعه داده های بزرگ (massive datasets)، شتابدهی GPU یک مزیت بزرگ محسوب میشه. ابزارهای سنتی مثل پانداس که به طور معمول روی CPU اجرا میشن، حالا میتونن با استفاده از قدرت پردازنده های گرافیکی (GPU) بدون تغییر در کدها بهینه بشن.

یکی از ابزارهای کلیدی در این زمینه، کتابخانه cuDF از NVIDIA هست که بخشی از پلتفرم RAPIDS™ برای علم داده محسوب میشه. cuDF یک کتابخانه دیتافریم (GPU DataFrame Library) هست که API مشابه پانداس ارائه میده و امکان بارگذاری (loading)، فیلتر کردن (filtering) و پردازش (manipulating) داده ها رو روی GPU فراهم میکنه.

در نسخه های اولیه cuDF، این کتابخانه فقط برای محیط های توسعه GPU-only طراحی شده بود، اما حالا کاربران میتونن بدون هیچ تغییری در کدهای پانداس، تا ۵۰ برابر سرعت بیشتر (50X Faster Performance) روی GPU نسبت به CPU دریافت کنن.

چرا NVIDIA cuDF برای دانشمندان داده اهمیت داره؟

cuDF برای دانشمندان داده (data scientists) ساخته شده که همچنان میخوان از پانداس استفاده کنن، اما در عین حال به دنبال افزایش عملکرد در پردازش داده های گیگابایتی هستن. زمانی که cuDF شتابدهی رو فعال میکنه:

  • عملیات روی GPU اجرا میشن (در صورتی که امکان پذیر باشه)
  • اگر پردازش روی GPU ممکن نباشه، از CPU (پانداس) استفاده میشه
  • cuDF به صورت خودکار بین GPU و CPU هماهنگ میشه

این طراحی باعث میشه که کاربران بدون نیاز به تغییر کدهای خودشون، از محاسبات مبتنی بر GPU در دیتافریم های پانداس استفاده کنن و بهترین عملکرد رو در پردازش داده ها تجربه کنن.

شتابدهی پردازش داده با cuDF و کاربردهای اون

با فعال کردن پردازش مبتنی بر GPU در وظایفی مثل پاکسازی داده (data cleaning)، تبدیل داده (data transforming) و تحلیل داده (data analyzing)، cuDF به طور چشمگیری زمان اجرای پردازش ها (runtime bottlenecks) رو کاهش میده.

ویژگی های کلیدی cuDF شامل موارد زیر هستن:

  • ادغام با ابزارهای یادگیری ماشین (ML) مثل scikit learn
  • پشتیبانی از پردازش چند GPU (multi GPU) و چند نودی (multi node)
  • مقیاس پذیری بالا برای پردازش مجموعه داده های بزرگ
  • تسریع فرآیندهای ETL (Extract, Transform, Load) از دیتافریم های پانداس تا یادگیری ماشین و حتی یادگیری عمیق (Deep Learning)

این ویژگی ها باعث میشن که cuDF تحولی در پردازش داده های حجیم ایجاد کنه و عملکرد مدل های علم داده و یادگیری ماشین رو به سطح بالاتری برسونه.

پانداس چیست

چطور با پانداس شتابدهی شده (Accelerated pandas) شروع کنیم؟

۱. نصب NVIDIA RAPIDS

برای شروع کار با پانداس شتابدهی شده (Accelerated pandas)، ابتدا باید NVIDIA RAPIDS رو نصب کنین. برای این کار، میتونین مستندات نصب RAPIDS رو در راهنمای نصب RAPIDS Installation Guide بررسی کنین و cuDF به همراه وابستگی های مورد نیاز برای معماری سخت افزاری خودتون رو نصب کنین.

۲. نصب پانداس (pandas)

بعد از اینکه کتابخانه های NVIDIA RAPIDS نصب شدن، نوبت به نصب پانداس میرسه. میتونین پانداس رو با pip یا conda به روش های زیر نصب کنین:

pip install pandas or conda install -c conda-forge pandas

۳. شروع کدنویسی با iPython یا Jupyter

اگه از مفسر iPython یا ژوپیتر نوت بوک (Jupyter Notebook) استفاده میکنین، قبل از وارد کردن پانداس (pandas) این خطوط رو اضافه کنین:

%%load_ext cudf.pandas
import pandas as pd

۴. شروع کدنویسی با پایتون

اگه از مفسر استاندارد پایتون (Python interpreter) استفاده میکنین، قبل از وارد کردن پانداس (pandas) این خطوط رو اضافه کنین:

import cudf.pandas
cudf.pandas.install()
import pandas as pd

حالا پانداس شما برای اجرای عملیات پردازش داده با شتابدهی GPU آماده است .

در انتها اگر این مطلب براتون مفید و کاربردی بود، خوشحال میشیم سوالات و نظراتتون رو با ما به اشتراک بگذارین.

نظرات کاربران

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

آموزش های پیشنهادی

نوشته های دیگر در دسته بندی مقالات آموزشی

استفاده از افکت های نوری (Lighting Effects) توی پریمیر پرو

پریمیر پرو و افزودن افکت های نوری (Lighting Effects)

در این آموزش به اینکه چطور میشه با ابزار Lighting Effects توی پریمیر پرو یا با استفاده از لایه های نوری مثل (...)
چگونه ویدیو را در پریمیر پرو استبلایز (Stabilize) کنیم؟

چگونه ویدیو را در پریمیر پرو استبلایز (Stabilize) کنیم؟

پریمیر پرو یه ابزار پایدارسازی (Stabilizer) ساده و قدرتمند داره که با یه کلیک فعال میشه. در این مقاله به هر چیزی (...)
چگونه-در-پریمیر-پرو-کالر-گرید-(Color-Grade)-کنیم؟

چگونه در پریمیر پرو کالر گرید (Color Grade) کنیم؟

پنل Lumetri Color توی پریمیر پرو جاییه که همه ابزارهای مربوط به رنگ بندی رو میتونین پیدا کنین. در این مقاله به (...)
آموزش هک

آموزش هک