Tee Pandoista 3 kertaa nopeampi PyPolarsilla

Lähdesolmu: 1854103

Tee Pandoista 3 kertaa nopeampi PyPolarsilla

Tunnisteet: Panda, Suorituskyky, Python

Opi nopeuttamaan Pandas-työnkulkua PyPolars-kirjaston avulla.


By Satyam Kumar, Koneoppimisen harrastaja ja ohjelmoija



Kuva Tim Gouw on Unsplash

 

Pandas on yksi tärkeimmistä datatieteilijöiden keskuudessa toimivista Python-paketeista, joita voi pelata tietojen kanssa. Pandas-kirjastoa käytetään lähinnä tietojen etsintään ja visualisointeihin, koska siihen sisältyy tonnia sisäänrakennettuja toimintoja. Pandat eivät kykene käsittelemään suurikokoisia tietojoukkoja, koska se ei skaalaa tai jaa prosessia kaikkien suorittimen ytimien kesken.

Laskennan nopeuttamiseksi voidaan käyttää kaikkia suorittimen ytimiä ja nopeuttaa työnkulkua. On olemassa useita avoimen lähdekoodin kirjastoja, kuten Dask, Vaex, Modin, Pandarallel, PyPolars jne., Jotka rinnastavat laskelmat suorittimen useiden ytimien välillä. Tässä artikkelissa keskustellaan PyPolars-kirjaston toteutuksesta ja käytöstä ja verrataan sen suorituskykyä Pandas-kirjastoon.

Mikä on PyPolars?

 
PyPolars on avoimen lähdekoodin Python-tietokehyskirjasto, joka on samanlainen kuin Pandas. PyPolars käyttää kaikkia suorittimen käytettävissä olevia ytimiä ja suorittaa siten laskelmat nopeammin kuin Pandas. PyPolarsilla on samanlainen API kuin Pandalla. Se on kirjoitettu ruosteessa Python-kääreillä.


Ihannetapauksessa PyPolarsia käytetään, kun tiedot ovat liian suuret Pandoille ja liian pienet Sparkille


Kuinka PyPolars toimii?

 
PyPolars-kirjastolla on kaksi sovellusliittymää, toinen on Eager API ja toinen Lazy API. Eager-sovellusliittymä on hyvin samanlainen kuin Pandas, ja tulokset tuotetaan heti suorituksen päätyttyä samanlaisena kuin Pandas. Lazy API on hyvin samanlainen kuin Spark, jossa kartta tai suunnitelma muodostetaan kyselyn suorittamisen yhteydessä. Sitten suoritus suoritetaan rinnakkain CPU: n kaikkien ytimien välillä.



(Kuva tekijältä), PyPolars-sovellusliittymät

 

PyPolars on pohjimmiltaan python-sitoutuminen Polars-kirjastoon. Paras osa PyPolars-kirjastoa on sen API-samankaltaisuus Pandojen kanssa, mikä helpottaa kehittäjiä.

Asennus:

 
PyPolars voidaan asentaa PyPl: stä seuraavan komennon avulla:

pip install py-polars


ja tuoda kirjasto käyttämällä

import pypolars as pl


Vertailuajan rajoitukset:


Esityksiin olen käyttänyt suurikokoista tietoaineistoa (~ 6.4 Gt), jossa on 25 miljoonaa esiintymää.




(Kuva tekijältä), Vertailuajan numero pandojen ja Py-Polarsin perustoiminnoille

 

Joidenkin Pandas- ja PyPolars-kirjastoa käyttävien perustoimintojen vertailuajankohdan numeroiden osalta voimme havaita, että PyPolars on lähes 2-3x nopeampi kuin Pandas.

Nyt tiedämme, että PyPolarsilla on API, joka on hyvin samanlainen kuin pandojen, mutta silti se ei kata kaikkia pandojen toimintoja. Esimerkiksi meillä ei ole .describe() PyPolarsissa, sen sijaan voimme käyttää df_pypolars.to_pandas().describe()

Käyttö:

 

(Tekijän koodi)

Johtopäätös:

 
Tässä artikkelissa olemme käsitelleet pienen johdannon PyPolars-kirjastoon, mukaan lukien sen käyttöönotto, käyttö ja vertailun vertailuaikaa Pandojen kanssa joissakin perustoiminnoissa. Huomaa, että PyPolars toimii hyvin samankaltaisesti kuin Pandas ja PyPolars on muistitehokas kirjasto, koska sen tukema muisti on muuttumaton.

Voidaan käydä läpi dokumentointi saadaksesi yksityiskohtaisen käsityksen kirjastosta. On olemassa useita muita avoimen lähdekoodin kirjastoja, jotka voivat rinnastaa Pandas-toiminnot ja nopeuttaa prosessia. Lue alla mainittu artikkeli tuntea 4 tällaista kirjastoa:

4 kirjastoa, jotka voivat rinnastaa olemassa olevan Pandas-ekosysteemin
Jaa Python-työmäärä rinnakkaiskäsittelyllä näiden kehysten avulla

 
Viitteet:

[1] Polars-dokumentaatio ja GitHub-arkisto: https://github.com/ritchie46/polars

 
Kiitos, että luit

 
Bio: Satyam Kumar on koneoppimisen harrastaja ja ohjelmoija. Satyam kirjoittaa tietotekniikasta ja on tekoälyn huipputekijä. Hän etsii haastavaa uraa organisaatiossa, joka tarjoaa mahdollisuuden hyödyntää hänen teknisiä taitojaan.

Alkuperäinen. Postitettu luvalla.

Related:

Lähde: https://www.kdnuggets.com/2021/05/pandas-faster-pypolars.html

Aikaleima:

Lisää aiheesta KDnuggets