הפוך פנדות 3 פעמים למהירות יותר עם PyPolar

צומת המקור: 1854103

הפוך פנדות 3 פעמים למהירות יותר עם PyPolar

למד כיצד להאיץ את זרימת העבודה של Pandas באמצעות ספריית PyPolars.


By סתיאם קומאר, חובב למידת מכונה ומתכנת



תמונה על ידי טים גו on Unsplash

 

Pandas היא אחת מחבילות Python החשובות ביותר בקרב מדעני נתונים לשחק עם הנתונים. ספריית Pandas משמשת בעיקר לחקר נתונים והדמיות מכיוון שהיא מגיעה עם טונות של פונקציות מובנות. פנדות לא מצליחות להתמודד עם מערכי נתונים בגודל גדול מכיוון שהן לא משנות את קנה המידה או מפיצות את התהליך שלה על פני כל הליבות של המעבד.

כדי להאיץ את החישובים, אפשר לנצל את כל הליבות של המעבד ולהאיץ את זרימת העבודה. ישנן ספריות קוד פתוח שונות כולל Dask, Vaex, Modin, Pandarallel, PyPolars וכו' המקבילות את החישובים על פני מספר ליבות של המעבד. במאמר זה, נדון ביישום ובשימוש בספריית PyPolars ונשווה את הביצועים שלה עם ספריית Pandas.

מה זה PyPolars?

 
PyPolars היא ספריית מסגרת נתונים בקוד פתוח של Python הדומה ל-Pandas. PyPolars מנצלת את כל הליבות הזמינות של ה-CPU ולכן מבצעת את החישובים מהר יותר מאשר Pandas. ל- PyPolars יש API דומה לזה של Pandas. זה כתוב בחלודה עם עטיפות פייתון.


באופן אידיאלי, נעשה שימוש ב-PyPolars כאשר הנתונים גדולים מדי עבור Pandas וקטנים מדי עבור Spark


איך PyPolars עובד?

 
לספריית PyPolars יש שני ממשקי API, האחד הוא Eager API והשני הוא Lazy API. Eager API דומה מאוד לזה של Pandas, והתוצאות מופקות מיד לאחר השלמת הביצוע בדומה ל-Pandas. Lazy API דומה מאוד ל-Spark, שם נוצרת מפה או תוכנית עם ביצוע שאילתה. אז הביצוע מבוצע במקביל על פני כל הליבות של המעבד.



(תמונה לפי מחבר), ה-API של PyPolars

 

PyPolars הוא בעצם מחייב פיתון לספריית Polars. החלק הטוב ביותר בספריית PyPolars הוא הדמיון ב-API שלה ל-Pandas, מה שמקל על המפתחים.

הַתקָנָה:

 
ניתן להתקין PyPolars מ- PyPl באמצעות הפקודה הבאה:

pip install py-polars


ולייבא את הספרייה באמצעות

import pypolars as pl


מגבלות זמן בנצ'מרק:


לצורך הדגמות, השתמשתי במערך נתונים בגודל גדול (~6.4Gb) עם 25 מיליון מופעים.




(תמונה לפי מחבר), מספר זמן בנצ'מרק עבור פעולות בסיסיות של פנדות ו-Py-Polars

 

עבור מספרי זמן ההשוואה שלעיל עבור כמה פעולות בסיסיות המשתמשות בספריית Pandas ו- PyPolars, אנו יכולים לראות ש- PyPolars מהיר כמעט פי 2 עד 3 מ- Pandas.

עכשיו אנחנו יודעים של-PyPolars יש API דומה מאוד לזה של Pandas, אבל עדיין, הוא לא מכסה את כל הפונקציות של Pandas. למשל, אין לנו .describe() פונקציה ב- PyPolars, במקום זאת, נוכל להשתמש df_pypolars.to_pandas().describe()

נוֹהָג:

 

(קוד לפי מחבר)

סיכום:

 
במאמר זה, כיסינו מבוא קטן לספריית PyPolars, כולל היישום שלה, השימוש והשוואת מספרי זמן ההשוואה שלה עם Pandas עבור כמה פעולות בסיסיות. שימו לב ש-PyPolars עובדת דומה מאוד לזו של Pandas, ו-PyPolars היא ספרייה יעילה בזיכרון מאחר והזיכרון המגובה בה אינו ניתן לשינוי.

אפשר לעבור את תיעוד כדי לקבל הבנה מפורטת של הספרייה. ישנן ספריות שונות בקוד פתוח שיכולות להקביל את פעולות Pandas ולהאיץ את התהליך. קרא את ה המאמר המוזכר להלן להכיר 4 ספריות כאלה:

4 ספריות שיכולות להקביל את המערכת האקולוגית הקיימת של הפנדות
הפצת עומס העבודה של Python על ידי עיבוד מקביל באמצעות מסגרות אלו

 
הפניות:

[1] תיעוד Polars ומאגר GitHub: https://github.com/ritchie46/polars

 
תודה שקראת

 
Bio you סתיאם קומאר הוא חובב למידת מכונה ומתכנת. סתיים כותב על Data Science, והוא סופר מוביל ב-AI. הוא מחפש קריירה מאתגרת בארגון המספק הזדמנות לנצל את הכישורים והיכולות הטכניות שלו.

מְקוֹרִי. פורסם מחדש באישור.

מידע נוסף:

מקור: https://www.kdnuggets.com/2021/05/pandas-faster-pypolars.html

בול זמן:

עוד מ KDnuggets