Gør pandaer 3 gange hurtigere med PyPolars

Kildeknude: 1854103

Gør pandaer 3 gange hurtigere med PyPolars

Lær, hvordan du fremskynder din Pandas-arbejdsgang ved hjælp af PyPolars-biblioteket.


By Satyam Kumar, Machine Learning-entusiast og programmør



Photo by Tim Gouw on Unsplash

 

Pandas er en af ​​de vigtigste Python-pakker blandt dataforskere til at lege med dataene. Pandas bibliotek bruges mest til dataudforskning og visualiseringer, da det kommer med tonsvis af indbyggede funktioner. Pandaer kan ikke håndtere datasæt i store størrelser, da de ikke skalerer eller distribuerer sin proces på tværs af alle kernerne i CPU'en.

For at fremskynde beregningerne kan man bruge alle kernerne i CPU'en og fremskynde arbejdsgangen. Der er forskellige open source-biblioteker, herunder Dask, Vaex, Modin, Pandarallel, PyPolars osv., der paralleliserer beregningerne på tværs af flere kerner i CPU'en. I denne artikel vil vi diskutere implementeringen og brugen af ​​PyPolars-biblioteket og sammenligne dets ydeevne med Pandas-biblioteket.

Hvad er PyPolars?

 
PyPolars er et open source Python-datarammebibliotek, der ligner Pandas. PyPolars bruger alle de tilgængelige kerner i CPU'en og udfører derfor beregningerne hurtigere end Pandas. PyPolars har et API, der ligner Pandas. Den er skrevet i rust med Python-omslag.


Ideelt set bruges PyPolars, når dataene er for store til pandaer og for små til Spark


Hvordan fungerer PyPolars?

 
PyPolars bibliotek har to API'er, den ene er Eager API og den anden er Lazy API. Eager API ligner meget Pandas, og resultaterne er produceret lige efter udførelsen er afsluttet i lighed med Pandas. Lazy API minder meget om Spark, hvor et kort eller en plan dannes ved udførelse af en forespørgsel. Derefter udføres udførelsen parallelt på tværs af alle kernerne i CPU'en.



(Billede efter forfatter), PyPolars API'er

 

PyPolars er grundlæggende som python-binding til Polars bibliotek. Den bedste del af PyPolars-biblioteket er dets API-lighed med Pandas, hvilket gør det lettere for udviklerne.

Installation:

 
PyPolars kan installeres fra PyPl ved hjælp af følgende kommando:

pip install py-polars


og importer biblioteket vha

import pypolars as pl


Benchmark tidsbegrænsninger:


Til demonstrationer har jeg brugt et datasæt i stor størrelse (~6.4 Gb) med 25 millioner forekomster.




(Billede efter forfatter), Benchmark Time Number for Pandas og Py-Polars grundlæggende operationer

 

For ovenstående benchmark-tidstal for nogle grundlæggende operationer ved hjælp af Pandas og PyPolars-biblioteket kan vi observere, at PyPolars er næsten 2x til 3x hurtigere end Pandas.

Nu ved vi, at PyPolars har et API, der ligner Pandas, men alligevel dækker det ikke alle Pandas funktioner. Det har vi for eksempel ikke .describe() funktion i PyPolars, i stedet kan vi bruge df_pypolars.to_pandas().describe()

Anvendelse:

 

(Kode efter forfatter)

konklusion:

 
I denne artikel har vi dækket en lille introduktion til PyPolars-biblioteket, herunder dets implementering, brug og sammenligning af dets benchmark-tidstal med Pandas for nogle grundlæggende operationer. Bemærk, at PyPolars fungerer meget som Pandas, og PyPolars er et hukommelseseffektivt bibliotek, da hukommelsen, der understøttes af det, er uforanderlig.

Man kan gå igennem dokumentation for at få en detaljeret forståelse af biblioteket. Der er forskellige andre open source-biblioteker, der kan parallelisere Pandas-operationerne og fremskynde processen. Læs nedenstående artikel at kende 4 sådanne biblioteker:

4 biblioteker, der kan parallelisere det eksisterende Pandas økosystem
Fordel Python-arbejdsbelastning ved parallel behandling ved hjælp af disse rammer

 
Referencer:

[1] Polars-dokumentation og GitHub-depot: https://github.com/ritchie46/polars

 
Tak fordi du læste

 
Bio: Satyam Kumar er en maskinlæringsentusiast og programmør. Satyam skriver om Data Science, og er en topforfatter inden for AI. Han søger en udfordrende karriere med en organisation, der giver mulighed for at udnytte hans tekniske færdigheder og evner.

Original. Genopslået med tilladelse.

Relateret:

Kilde: https://www.kdnuggets.com/2021/05/pandas-faster-pypolars.html

Tidsstempel:

Mere fra KDnuggets