Gjør Pandas 3 ganger raskere med PyPolar

Kilde node: 1854103

Gjør Pandas 3 ganger raskere med PyPolar

Lær hvordan du kan øke hastigheten på Pandas-arbeidsflyten din ved hjelp av PyPolars-biblioteket.


By Satyam Kumar, Maskinlæringsentusiast og programmerer



Photo by Tim Gouw on Unsplash

 

Pandas er en av de viktigste Python-pakkene blant datavitenskapsmenn for å leke med dataene. Pandas-biblioteket brukes mest til datautforskning og visualiseringer, da det kommer med mange innebygde funksjoner. Pandaer håndterer ikke datasett i store størrelser, da de ikke skalerer eller distribuerer prosessen over alle kjernene i CPUen.

For å øke hastigheten på beregningene, kan man bruke alle kjernene i CPU-en og øke hastigheten på arbeidsflyten. Det er forskjellige open source-biblioteker, inkludert Dask, Vaex, Modin, Pandarallel, PyPolars, etc som parallelliserer beregningene over flere kjerner i CPU-en. I denne artikkelen vil vi diskutere implementeringen og bruken av PyPolars-biblioteket og sammenligne ytelsen med Pandas-biblioteket.

Hva er PyPolar?

 
PyPolars er et åpen kildekode Python-datarammebibliotek som ligner på Pandas. PyPolar bruker alle tilgjengelige kjerner i CPU og utfører dermed beregningene raskere enn Pandas. PyPolars har en API som ligner på Pandas. Den er skrevet i rust med Python-innpakninger.


Ideelt sett brukes PyPolar når dataene er for store for Pandas og for små for Spark


Hvordan fungerer PyPolar?

 
PyPolars-biblioteket har to API-er, den ene er Eager API og den andre er Lazy API. Eager API ligner veldig på Pandas, og resultatene produseres like etter at kjøringen er fullført i likhet med Pandas. Lazy API er veldig lik Spark, der et kart eller en plan blir dannet ved utføring av et spørsmål. Deretter kjøres utførelsen parallelt over alle kjernene i CPUen.



(Bilde av forfatter), PyPolars API-er

 

PyPolar er i utgangspunktet som pythonbinding til Polars-biblioteket. Den beste delen av PyPolars-biblioteket er dets API-likhet med Pandas, noe som gjør det lettere for utviklerne.

Installasjon:

 
PyPolar kan installeres fra PyPl ved hjelp av følgende kommando:

pip install py-polars


og importer biblioteket ved hjelp av

import pypolars as pl


Referansetidsbegrensninger:


For demonstrasjoner har jeg brukt et stort datasett (~ 6.4Gb) med 25 millioner forekomster.




(Bilde av forfatter), Benchmark Time Number for Pandas and Py-Polars basic operations

 

For de ovennevnte referansetidstallene for noen grunnleggende operasjoner ved bruk av Pandas og PyPolars bibliotek, kan vi observere at PyPolar er nesten 2x til 3 ganger raskere enn Pandas.

Nå vet vi at PyPolars har en API som er veldig lik den til Pandas, men likevel dekker den ikke alle funksjonene til Pandas. For eksempel har vi ikke det .describe() funksjon i PyPolar, i stedet kan vi bruke df_pypolars.to_pandas().describe()

Bruk:

 

(Kode på forfatter)

Konklusjon:

 
I denne artikkelen har vi dekket en liten introduksjon til PyPolars-biblioteket, inkludert implementering, bruk og sammenligning av referansetidstallene med Pandas for noen grunnleggende operasjoner. Merk at PyPolar fungerer veldig likt Pandas, og PyPolar er et minneeffektivt bibliotek siden minnet støttet av det er uforanderlig.

Man kan gå gjennom dokumentasjon for å få en detaljert forståelse av biblioteket. Det er forskjellige andre open source-biblioteker som kan parallellisere Pandas-operasjonene og øke hastigheten på prosessen. Les nedenfor nevnte artikkel å kjenne til 4 slike biblioteker:

4 biblioteker som kan parallellisere det eksisterende Pandas-økosystemet
Distribuer Python-arbeidsbelastning ved parallell behandling ved hjelp av disse rammene

 
Referanser:

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

 
Takk for at du leser

 
Bio: Satyam Kumar er en maskinlæringsentusiast og programmerer. Satyam skriver om datavitenskap, og er en toppforfatter i AI. Han søker en utfordrende karriere hos en organisasjon som gir en mulighet til å kapitalisere på hans tekniske ferdigheter og evner.

original. Ompostet med tillatelse.

Relatert:

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

Tidstempel:

Mer fra KDnuggets