האם זה מדויק לטעון שספריית ה-Polars החדשה עולה על פנדה במספר מדדים, או שמא ספריית פנדס עדיין הבחירה הדומיננטית?
בזמן ביצוע משימות ניתוח נתונים, רוב הסיכויים שנתקלת בפנדות. זו הייתה הספרייה השלטת ביותר בניתוח נתונים במשך זמן רב. Polars לעומת זאת היא ספרייה חדשה יחסית שמתהדרת בביצועים גבוהים ויעילות זיכרון. אבל, איזה מהם עדיף?
כאן תראה השוואה של הביצועים בין Pandas ו-Polars על פני מגוון משימות נפוצות של מניפולציה של נתונים.
מדידת ביצועים: מדדים ומערך נתונים בנצ'מרק
השוואה זו תיקח בחשבון את היכולת של פנדות ו קוטביות ספריות לתמרן את מערך הנתונים של מכירת Black Friday קגל. מערך נתונים זה מכיל 550,068 שורות של נתונים. הוא כולל מידע על נתונים דמוגרפיים של לקוחות, היסטוריית רכישות ופרטי מוצר.
כדי להבטיח מדידת ביצועים הוגנת, ההשוואה תשתמש בזמן הביצוע כמדד ביצועים סטנדרטי בכל משימה. הפלטפורמה להפעלת הקוד עבור כל משימת השוואה תהיה Google Colab.
קוד המקור המלא שמשווה בין ספריות Pandas ו-Polars זמין ב-a מאגר GitHub.
קריאת נתונים מקובץ CSV
משימה זו משווה את הזמן שלוקח לכל ספריה לקרוא נתונים ממערך הנתונים של מכירת Black Friday. מערך הנתונים נמצא ב
פורמט CSV. Pandas ו-Polars מציעים פונקציונליות דומה עבור משימה זו.לפנדות לוקח פי שניים מהזמן שלוקח ל-Polars לקרוא נתונים במערך הנתונים של Black Friday Sale.
בחירת עמודות
משימה זו מודדת את הזמן שלוקח לכל ספריה לבחור את העמודות ממערך הנתונים. זה כרוך בבחירת זהות המשתמש ו לִרְכּוֹשׁ עמודות.
לקוטבים לוקח הרבה פחות זמן לבחור עמודות ממערך הנתונים בהשוואה לפנדות.
סינון שורות
משימה זו משווה את הביצועים של כל ספריה בשורות סינון שבהן מִין העמודה היא F מתוך מערך הנתונים.
לקוטבים לוקח זמן קצר מאוד בהשוואה לפנדות כדי לסנן את השורות.
קיבוץ וצבירת נתונים
משימה זו כוללת קיבוץ נתונים לפי עמודה אחת או יותר. לאחר מכן, ביצוע כמה פונקציות צבירה בקבוצות. הוא מודד את הזמן שלוקח לכל ספריה לקבץ את הנתונים לפי מִין עמודה וחשב את סכום הרכישה הממוצע עבור כל קבוצה.
שוב, Polars עולה על ביצועי הפנדות. אבל המרווח אינו עצום כמו זה של סינון השורות.
החלת פונקציות על נתונים
משימה זו כוללת החלת פונקציה על עמודה אחת או יותר. זה מודד את הזמן שלוקח לכל ספריה להכפיל את לִרְכּוֹשׁ עמודה לפי 2.
אתה בקושי יכול לראות את הבר Polars. פולארים שוב עולים על פני הפנדות.
מיזוג נתונים
משימה זו כוללת מיזוג שניים או יותר DataFrames על בסיס שקיימים עמודה נפוצה אחת או יותר. זה מודד את הזמן שלוקח לכל ספריה למזג את זהות המשתמש ו לִרְכּוֹשׁ עמודות משתי DataFrames נפרדות.
לשתי הספריות לוקח זמן להשלים משימה זו. אבל ל-Polars לוקח כמעט מחצית מהזמן שלוקח לפנדאס למזג את הנתונים.
מדוע פולארים מסוגלים לעלות על הפנדות?
בכל משימות מניפולציית הנתונים לעיל, Polars עולה על ביצועי הפנדות. ישנן מספר סיבות לכך ש-Polars עשוי להעלות על פני פנדה בזמן הביצוע.
- אופטימיזציה של זיכרון: Polars משתמש ב-Rust, שפת תכנות מערכת המייעלת את השימוש בזיכרון. זה מאפשר ל-Polars למזער את הזמן שהוא משקיע בהקצאת זיכרון והקצאת זיכרון. זה הופך את זמן הביצוע למהיר יותר.
- פעולות SIMD (Single Instruction Multiple Data).: Polars משתמשת בפעולות SIMD כדי לבצע חישובים על נתונים. המשמעות היא שהוא יכול להשתמש בהוראה בודדת כדי לבצע את אותה פעולה על מספר רכיבי נתונים בו זמנית. זה מאפשר ל-Polars לבצע פעולות הרבה יותר מהר מאשר Pandas, המשתמשות בגישה עם חוט יחיד.
- הערכה עצלנית: Polars משתמשת בהערכה עצלנית כדי לדחות את ביצוע הפעולות עד שהיא תזדקק להן. זה מקטין את משך הזמן של Polars משקיע בפעולות מיותרות ומשפר את הביצועים.
הרחב את כישורי מדעי הנתונים שלך
יש הרבה ספריות Python בחוץ שיכולות לעזור לך במדעי הנתונים. פנדות וקוטבים הם רק חלק קטן. כדי לשפר את ביצועי התוכנית שלך, עליך להכיר ספריות נוספות של מדעי הנתונים. זה יעזור לך להשוות ולבחור איזו ספרייה המתאימה ביותר למקרה השימוש שלך.