اجعل Pandas أسرع 3 مرات مع PyPolars

عقدة المصدر: 1854103

اجعل Pandas أسرع 3 مرات مع PyPolars

الوسوم (تاج): الباندا, الأداء, بايثون

تعرف على كيفية تسريع سير عمل Pandas باستخدام مكتبة PyPolars.


By ساتيام كومار، متحمس لتعلم الآلة ومبرمج



تصوير تيم غو on Unsplash

 

تعد Pandas واحدة من أهم حزم Python بين علماء البيانات للتلاعب بالبيانات. تُستخدم مكتبة Pandas في الغالب لاستكشاف البيانات والتصورات لأنها تأتي مع الكثير من الوظائف الداخلية. تفشل Pandas في التعامل مع مجموعات البيانات كبيرة الحجم لأنها لا تقوم بتوسيع نطاق عملياتها أو توزيعها عبر جميع أنوية وحدة المعالجة المركزية.

لتسريع العمليات الحسابية ، يمكن للمرء استخدام جميع أنوية وحدة المعالجة المركزية وتسريع سير العمل. هناك العديد من المكتبات مفتوحة المصدر بما في ذلك Dask و Vaex و Modin و Pandarallel و PyPolars وغيرها التي تقوم بالتوازي مع العمليات الحسابية عبر نوى متعددة لوحدة المعالجة المركزية. في هذه المقالة ، سنناقش تطبيق واستخدام مكتبة PyPolars ومقارنة أدائها بمكتبة Pandas.

ما هو PyPolars؟

 
PyPolars هي مكتبة إطار بيانات Python مفتوحة المصدر تشبه Pandas. يستخدم PyPolars جميع النوى المتاحة لوحدة المعالجة المركزية وبالتالي يقوم بإجراء العمليات الحسابية بشكل أسرع من Pandas. لدى PyPolars واجهة برمجة تطبيقات مشابهة لتلك الخاصة بـ Pandas. إنه مكتوب بالصدأ مع أغلفة بايثون.


من الناحية المثالية ، يتم استخدام PyPolars عندما تكون البيانات كبيرة جدًا بالنسبة إلى Pandas وصغيرة جدًا بالنسبة لـ Spark


كيف يعمل PyPolars؟

 
تحتوي مكتبة PyPolars على واجهتي API ، أحدهما هو Eager API والآخر هو Lazy API. تشبه Eager API تلك الخاصة بـ Pandas ، ويتم إنتاج النتائج مباشرة بعد اكتمال التنفيذ على غرار Pandas. تشبه Lazy API إلى حد كبير Spark ، حيث يتم تشكيل خريطة أو خطة عند تنفيذ استعلام. ثم يتم تنفيذ التنفيذ بشكل متوازي عبر جميع أنوية وحدة المعالجة المركزية.



(صورة المؤلف) ، PyPolars API's

 

يعد PyPolars أساسًا بمثابة ارتباط بيثون بمكتبة Polars. أفضل جزء في مكتبة PyPolars هو تشابه واجهة برمجة التطبيقات مع Pandas ، مما يسهل على المطورين.

تركيب:

 
يمكن تثبيت PyPolars من PyPl باستخدام الأمر التالي:

pip install py-polars


واستيراد المكتبة باستخدام ملفات

import pypolars as pl


قيود الوقت المعيارية:


بالنسبة للعروض التوضيحية ، لقد استخدمت مجموعة بيانات كبيرة الحجم (حوالي 6.4 جيجا بايت) بها 25 مليون نسخة.




(الصورة من المؤلف) ، رقم الوقت المعياري لعمليات Pandas و Py-Polars الأساسية

 

بالنسبة للأرقام القياسية المذكورة أعلاه لبعض العمليات الأساسية باستخدام مكتبة Pandas و PyPolars ، يمكننا أن نلاحظ أن PyPolars أسرع من Pandas بمقدار 2x إلى 3x تقريبًا.

نحن نعلم الآن أن PyPolars لديها واجهة برمجة تطبيقات مشابهة جدًا لتلك الخاصة بـ Pandas ، لكنها لا تزال لا تغطي جميع وظائف Pandas. على سبيل المثال ، ليس لدينا .describe() تعمل في PyPolars ، بدلاً من ذلك ، يمكننا استخدام df_pypolars.to_pandas().describe()

الاستخدام:

 

(كود المؤلف)

الخلاصة:

 
في هذه المقالة ، قمنا بتغطية مقدمة صغيرة لمكتبة PyPolars ، بما في ذلك تنفيذها ، واستخدامها ، ومقارنة أرقامها الزمنية المعيارية مع Pandas لبعض العمليات الأساسية. لاحظ أن PyPolars تعمل بشكل مشابه جدًا لتلك الخاصة بـ Pandas ، و PyPolars هي مكتبة فعالة للذاكرة لأن الذاكرة التي تدعمها غير قابلة للتغيير.

يمكن للمرء أن يمر من خلال توثيق للحصول على فهم تفصيلي للمكتبة. هناك العديد من المكتبات الأخرى مفتوحة المصدر التي يمكنها موازنة عمليات Pandas وتسريع العملية. إقرأ ال المادة المذكورة أدناه لمعرفة 4 مكتبات من هذا القبيل:

4 مكتبات يمكن أن توازي نظام Pandas البيئي الحالي
وزع عبء عمل Python عن طريق المعالجة المتوازية باستخدام هذه الأطر

 
المراجع:

[1] وثائق Polars ومستودع GitHub: https://github.com/ritchie46/polars

 
شكرا لقرائتك

 
السيرة الذاتية: ساتيام كومار هو متحمس للتعلم الآلي ومبرمج. ساتيام يكتب حول علوم البيانات ، وهو كاتب بارز في الذكاء الاصطناعي. إنه يبحث عن مهنة مليئة بالتحديات مع منظمة توفر فرصة للاستفادة من مهاراته وقدراته التقنية.

أصلي. تم إعادة النشر بإذن.

هذا الموضوع ذو علاقة بـ:

المصدر: https://www.kdnuggets.com/2021/05/pandas-faster-pypolars.html

الطابع الزمني:

اكثر من KD nuggets