Rendi i Panda 3 volte più veloci con PyPolar

Nodo di origine: 1854103

Rendi i Panda 3 volte più veloci con PyPolar

Scopri come velocizzare il flusso di lavoro di Pandas utilizzando la libreria PyPolars.


By Satyam Kumar, Appassionato e programmatore di machine learning



Foto di Tim Gouw on Unsplash

 

Pandas è uno dei pacchetti Python più importanti tra i data scientist per giocare con i dati. La libreria Panda viene utilizzata principalmente per l'esplorazione e la visualizzazione dei dati poiché include tantissime funzioni integrate. I Panda non riescono a gestire set di dati di grandi dimensioni poiché non scalano o distribuiscono il processo su tutti i core della CPU.

Per accelerare i calcoli, è possibile utilizzare tutti i core della CPU e accelerare il flusso di lavoro. Esistono varie librerie open source tra cui Dask, Vaex, Modin, Pandarallel, PyPolars, ecc. Che parallelizzano i calcoli su più core della CPU. In questo articolo discuteremo dell'implementazione e dell'utilizzo della libreria PyPolars e confronteremo le sue prestazioni con la libreria Pandas.

Cos'è PyPolars?

 
PyPolars è una libreria di frame dati Python open source simile a Pandas. PyPolars utilizza tutti i core disponibili della CPU e quindi esegue i calcoli più velocemente di Pandas. PyPolars ha un'API simile a quella di Pandas. È scritto in ruggine con involucri Python.


Idealmente, PyPolars viene utilizzato quando i dati sono troppo grandi per Panda e troppo piccoli per Spark


Come funziona PyPolars?

 
La libreria PyPolars ha due API, una è l'API Eager e l'altra è l'API Lazy. L'API Eager è molto simile a quella di Panda e i risultati vengono prodotti subito dopo il completamento dell'esecuzione in modo simile a Panda. L'API Lazy è molto simile a Spark, in cui una mappa o un piano viene formato dopo l'esecuzione di una query. Quindi l'esecuzione viene eseguita parallelamente su tutti i core della CPU.



(Immagine dell'autore), API PyPolars

 

PyPolars è fondamentalmente un collegamento Python alla libreria Polars. La parte migliore della libreria PyPolars è la somiglianza dell'API con Pandas, che semplifica il lavoro degli sviluppatori.

Installazione:

 
PyPolars può essere installato da PyPl utilizzando il seguente comando:

pip install py-polars


e importare la libreria utilizzando

import pypolars as pl


Vincoli temporali del benchmark:


Per le dimostrazioni, ho utilizzato un set di dati di grandi dimensioni (~6.4 Gb) con 25 milioni di istanze.




(Immagine dell'autore), numero temporale di riferimento per le operazioni di base di Panda e Py-Polar

 

Per i numeri temporali di riferimento sopra riportati per alcune operazioni di base che utilizzano Pandas e la libreria PyPolars, possiamo osservare che PyPolars è quasi da 2 a 3 volte più veloce di Pandas.

Ora sappiamo che PyPolars ha un'API molto simile a quella di Pandas, ma non copre ancora tutte le funzioni di Pandas. Ad esempio, non abbiamo .describe() funzione in PyPolars, invece, possiamo usare df_pypolars.to_pandas().describe()

Uso:

 

(Codice per autore)

Conclusione:

 
In questo articolo abbiamo trattato una piccola introduzione alla libreria PyPolars, inclusa la sua implementazione, utilizzo e il confronto dei numeri temporali dei benchmark con Panda per alcune operazioni di base. Tieni presente che PyPolars funziona in modo molto simile a quello di Pandas e PyPolars è una libreria efficiente in termini di memoria poiché la memoria supportata da essa è immutabile.

Si può passare attraverso il documentazione per avere una conoscenza dettagliata della biblioteca. Esistono varie altre librerie open source che possono parallelizzare le operazioni di Panda e accelerare il processo. Leggi il articolo sotto citato per conoscere 4 di queste librerie:

4 librerie che possono parallelizzare l'ecosistema Panda esistente
Distribuisci il carico di lavoro Python mediante elaborazione parallela utilizzando questi framework

 
Riferimenti:

[1] Documentazione Polars e repository GitHub: https://github.com/ritchie46/polars

 
Grazie per aver letto

 
Bio: Satyam Kumar è un appassionato e programmatore di machine learning. Satyam scrive sulla scienza dei dati ed è uno dei migliori scrittori di intelligenza artificiale. Sta cercando una carriera stimolante con un'organizzazione che offra l'opportunità di sfruttare le sue capacità e capacità tecniche.

Originale. Ripubblicato con il permesso.

Correlato:

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

Timestamp:

Di più da KDnuggets