با PyPolars پانداها را 3 برابر سریعتر کنید

گره منبع: 1854103

با PyPolars پانداها را 3 برابر سریعتر کنید

نحوه افزایش سرعت گردش کار پانداها با استفاده از کتابخانه PyPolars را بیاموزید.


By ساتیام کومار, علاقه مندان به یادگیری ماشین و برنامه نویس



عکس تیم گوا on می Unsplash

 

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

برای سرعت بخشیدن به محاسبات، می توان از تمام هسته های CPU استفاده کرد و روند کار را سرعت بخشید. کتابخانه های متن باز مختلفی از جمله Dask، Vaex، Modin، Pandarallel، PyPolars و غیره وجود دارند که محاسبات را در چندین هسته CPU موازی می کنند. در این مقاله به پیاده سازی و استفاده از کتابخانه PyPolars و مقایسه عملکرد آن با کتابخانه Pandas می پردازیم.

PyPolars چیست؟

 
PyPolars یک کتابخانه چارچوب داده پایتون منبع باز شبیه به پانداها است. PyPolars از تمام هسته های موجود CPU استفاده می کند و از این رو محاسبات را سریعتر از پانداها انجام می دهد. PyPolars یک API شبیه به پانداها دارد. به رنگ زنگ زده با لفاف های پایتون نوشته شده است.


در حالت ایده‌آل، PyPolars زمانی استفاده می‌شود که داده‌ها برای پانداها خیلی بزرگ و برای Spark خیلی کوچک باشد


PyPolars چگونه کار می کند؟

 
کتابخانه PyPolars دارای دو API است، یکی Eager API و دیگری Lazy API. Eager API بسیار شبیه به پانداها است و نتایج درست پس از اتمام اجرا مشابه پانداها تولید می شوند. Lazy API بسیار شبیه به Spark است، جایی که نقشه یا طرحی پس از اجرای یک کوئری شکل می گیرد. سپس اجرا به طور موازی در تمام هسته های CPU اجرا می شود.



(تصویر توسط نویسنده)، PyPolars API

 

PyPolars اساساً به عنوان پایتون متصل به کتابخانه Polars است. بهترین بخش کتابخانه PyPolars شباهت API آن به پانداها است که کار را برای توسعه دهندگان آسان می کند.

نصب و راه اندازی:

 
PyPolars را می توان از PyPl با استفاده از دستور زیر نصب کرد:

pip install py-polars


و کتابخانه را با استفاده از آن وارد کنید

import pypolars as pl


محدودیت های زمانی معیار:


برای نمایش، من از یک مجموعه داده با اندازه بزرگ (~6.4Gb) با 25 میلیون نمونه استفاده کرده ام.




(تصویر توسط نویسنده)، شماره زمان معیار برای عملیات های اساسی پانداها و Py-Polars

 

برای اعداد زمانی معیار بالا برای برخی از عملیات های اساسی با استفاده از کتابخانه Pandas و PyPolars، می توانیم مشاهده کنیم که PyPolars تقریبا 2x تا 3 برابر سریعتر از Pandas است.

اکنون می دانیم که PyPolars یک API بسیار شبیه به پانداها دارد، اما با این حال، تمام عملکردهای پانداها را پوشش نمی دهد. مثلا نداریم .describe() تابع در PyPolars، به جای آن، می توانیم استفاده کنیم df_pypolars.to_pandas().describe()

طریقه استفاده:

 

(کد توسط نویسنده)

نتیجه:

 
در این مقاله، مقدمه کوچکی از کتابخانه PyPolars شامل پیاده‌سازی، استفاده و مقایسه اعداد زمانی معیار آن با پانداها برای برخی از عملیات‌های اساسی را پوشش داده‌ایم. توجه داشته باشید که PyPolars بسیار شبیه به پانداها کار می کند و PyPolars یک کتابخانه حافظه کارآمد است زیرا حافظه پشتیبانی شده توسط آن تغییرناپذیر است.

می توان از طریق آن عبور کرد مستندات برای درک دقیق کتابخانه کتابخانه های متن باز دیگری نیز وجود دارند که می توانند عملیات پانداها را موازی کرده و روند را تسریع کنند. را بخوانید مقاله ذکر شده در زیر 4 کتابخانه از این قبیل را بشناسید:

4 کتابخانه که می توانند اکوسیستم پانداهای موجود را موازی کنند
با استفاده از این فریم ورک ها، بار کاری پایتون را با پردازش موازی توزیع کنید

 
منابع:

[1] اسناد Polars و مخزن GitHub: https://github.com/ritchie46/polars

 
با تشکر از شما برای خواندن

 
بیوگرافی: ساتیام کومار یک علاقه‌مند به یادگیری ماشین و برنامه‌نویس است. ساتیام می نویسد: در مورد علم داده، و نویسنده برتر در هوش مصنوعی است. او به دنبال شغلی چالش برانگیز با سازمانی است که فرصتی برای سرمایه گذاری بر روی مهارت ها و توانایی های فنی او فراهم می کند.

اصلی. مجدداً با اجازه دوباره ارسال شد.

مرتبط:

منبع: https://www.kdnuggets.com/2021/05/pandas-faster-pypolars.html

تمبر زمان:

بیشتر از kdnuggets