Muutke pandad PyPolarsi abil kolm korda kiiremaks

Allikasõlm: 1854103

Muutke pandad PyPolarsi abil kolm korda kiiremaks

Siit saate teada, kuidas PyPolarsi teeki kasutades Pandade töövoogu kiirendada.


By Satyam Kumar, masinõppe entusiast ja programmeerija



Foto: Tim Gouw on Unsplash

 

Pandas on andmeteadlaste seas üks olulisemaid Pythoni pakette, millega andmetega ringi mängida. Panda raamatukogu kasutatakse enamasti andmete uurimiseks ja visualiseerimiseks, kuna see sisaldab palju sisseehitatud funktsioone. Pandad ei suuda käsitleda suuri andmekogumeid, kuna need ei skaleeri ega jaota oma protsessi kõigi protsessori tuumade vahel.

Arvutuste kiirendamiseks saab kasutada kõiki protsessori tuumasid ja kiirendada töövoogu. On mitmeid avatud lähtekoodiga teeke, sealhulgas Dask, Vaex, Modin, Pandarallel, PyPolars jne, mis paralleelstavad arvutusi mitme protsessori tuuma vahel. Selles artiklis käsitleme PyPolarsi teegi rakendamist ja kasutamist ning võrdleme selle toimivust Pandase raamatukoguga.

Mis on PyPolars?

 
PyPolars on avatud lähtekoodiga Pythoni andmeraami teek, mis sarnaneb Pandasele. PyPolars kasutab kõiki saadaolevaid protsessori tuumasid ja teeb seega arvutused kiiremini kui Pandas. PyPolarsil on Pandade omaga sarnane API. See on kirjutatud roostes Pythoni ümbristega.


Ideaalis kasutatakse PyPolarsi siis, kui andmed on Pandade jaoks liiga suured ja Sparki jaoks liiga väikesed


Kuidas PyPolars töötab?

 
PyPolarsi raamatukogul on kaks API-d, üks on Eager API ja teine ​​​​Lazy API. Eager API on väga sarnane Pandade omaga ja tulemused saadakse kohe pärast täitmise lõpetamist sarnaselt Pandadele. Lazy API on väga sarnane Sparkiga, kus päringu täitmisel moodustatakse kaart või plaan. Seejärel teostatakse täitmine paralleelselt kõigis protsessori tuumades.



(Autori pilt), PyPolarsi API

 

PyPolars on põhimõtteliselt Python siduv Polarsi raamatukoguga. PyPolarsi teegi parim osa on selle API sarnasus Pandadega, mis muudab selle arendajatele lihtsamaks.

Paigaldus:

 
PyPolarsi saab PyPl-st installida järgmise käsu abil:

pip install py-polars


ja importige raamatukogu kasutades

import pypolars as pl


Võrdlusuuringu ajapiirangud:


Demonstreerimiseks olen kasutanud suurt andmestikku (~ 6.4 Gb), millel on 25 miljonit eksemplari.




(Autori pilt), Pandade ja Py-Polarsi põhitoimingute ajanumber

 

Eespool toodud ajanumbrite puhul Pandase ja PyPolarsi teeki kasutavate põhitoimingute jaoks võime täheldada, et PyPolars on peaaegu 2–3 korda kiirem kui Pandas.

Nüüd teame, et PyPolarsil on Pandade omaga väga sarnane API, kuid siiski ei kata see kõiki Pandade funktsioone. Meil näiteks ei ole .describe() funktsiooni PyPolarsis, saame selle asemel kasutada df_pypolars.to_pandas().describe()

Kasutus:

 

(Autori kood)

Järeldus:

 
Selles artiklis oleme käsitlenud PyPolarsi teegi väikest sissejuhatust, sealhulgas selle rakendamist, kasutamist ja selle võrdlusaega Pandadega mõne põhitoimingu jaoks. Pange tähele, et PyPolars töötab väga sarnaselt Pandade omaga ja PyPolars on mälutõhus raamatukogu, kuna selle taga olev mälu on muutumatu.

Üks saab läbida dokumentatsioon raamatukogust üksikasjaliku ülevaate saamiseks. On mitmeid teisi avatud lähtekoodiga teeke, mis võivad Pandade toiminguid paralleelselt ühendada ja protsessi kiirendada. Loe allpool mainitud artikkel teada 4 sellist raamatukogu:

4 raamatukogu, mis suudavad olemasoleva Panda ökosüsteemi paralleelselt ühendada
Jaotage Pythoni töökoormus paralleeltöötlusega, kasutades neid raamistikke

 
viited:

[1] Polarsi dokumentatsioon ja GitHubi hoidla: https://github.com/ritchie46/polars

 
Aitäh Lugemise eest

 
Bio: Satyam Kumar on masinõppe entusiast ja programmeerija. Satyam kirjutab Andmeteaduse kohta ja on AI tippkirjanik. Ta otsib väljakutseid pakkuvat karjääri organisatsioonis, mis annab võimaluse tema tehnilisi oskusi ja võimeid ära kasutada.

Originaal. Loaga uuesti postitatud.

Seotud:

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

Ajatempel:

Veel alates KDnuggets