Helyes-e azt állítani, hogy az új Polars könyvtár több benchmarkban is felülmúlja a Pandákat, vagy továbbra is a Pandas könyvtár a domináns választás?
Az adatelemzési feladatok végrehajtása során nagy eséllyel találkozott Pandákkal. Hosszú ideig az adatelemzés legdominánsabb könyvtára. Másrészt a Polars egy viszonylag új könyvtár, amely nagy teljesítménnyel és memóriahatékonysággal büszkélkedhet. De vajon melyik a jobb?
Itt láthatja a Pandák és a Polars teljesítményének összehasonlítását a gyakori adatkezelési feladatok során.
A teljesítmény mérése: mérőszámok és benchmark adatkészlet
Ez az összehasonlítás figyelembe veszi a Pandák képességét és Polars könyvtárak a Black Friday Sale adatkészlet kezeléséhez Kaggle. Ez az adatkészlet 550 068 adatsort tartalmaz. Információkat tartalmaz az ügyfelek demográfiai adatairól, a vásárlási előzményekről és a termék részleteiről.
A tisztességes teljesítménymérések biztosítása érdekében az összehasonlítás a végrehajtási időt használja standard teljesítménymutatóként minden egyes feladatnál. Az egyes összehasonlítási feladatok kódjának futtatására szolgáló platform a Google Colab lesz.
A Pandas és Polars könyvtárakat összehasonlító teljes forráskód elérhető a GitHub adattár.
Adatok olvasása CSV-fájlból
Ez a feladat összehasonlítja azt az időt, amely alatt az egyes könyvtárak kiolvassák a Black Friday Sale adatkészletből származó adatokat. Az adatkészlet bent van CSV formátum. A Pandák és a Polars hasonló funkciókat kínál erre a feladatra.
A pandák kétszer annyi időt vesznek igénybe, mint a Polaroknak a Black Friday Sale adatkészletben szereplő adatok beolvasása.
Oszlopok kiválasztása
Ez a feladat azt az időt méri, amely alatt az egyes könyvtárak kiválasztják az oszlopokat az adatkészletből. Ez magában foglalja a Felhasználói azonosító és Vásárlás oszlopok.
A Polaroknak lényegesen kevesebb időbe telik az oszlopok kiválasztása az adatkészletből, mint a Pandák.
Sorok szűrése
Ez a feladat összehasonlítja az egyes könyvtárak teljesítményét olyan szűrési sorokban, ahol a Nem oszlop F az adatkészletből.
A pandákhoz képest nagyon rövid idő alatt szűrik ki a sarkokat a sorok.
Adatok csoportosítása és összesítése
Ez a feladat magában foglalja az adatok egy vagy több oszlop szerinti csoportosítását. Ezután néhány aggregációs funkció végrehajtása a csoportokon. Azt az időt méri, amely alatt az egyes könyvtárak az adatokat csoportosítják Nem oszlopban, és számítsa ki az egyes csoportok átlagos vásárlási összegét.
A Polars ismét felülmúlja a Pandákat. De a margó nem akkora, mint a sorok szűrésénél.
Függvények alkalmazása adatokra
Ez a feladat egy függvény alkalmazását foglalja magában egy vagy több oszlopra. Azt az időt méri, amely alatt az egyes könyvtárak megsokszorozzák a Vásárlás oszlop 2-vel.
Alig látni a Polars sávot. A sarkiak ismét felülmúlják a pandákat.
Adatok egyesítése
Ez a feladat magában foglalja két vagy több DataFrame összevonása azon az alapon, hogy létezik egy vagy több közös oszlop. Méri azt az időt, amely alatt az egyes könyvtárak egyesítik a Felhasználói azonosító és Vásárlás oszlopokat két külön DataFrame-ből.
Mindkét könyvtárnak időbe telik a feladat elvégzése. A Polars azonban csaknem feleannyi időt vesz igénybe, mint a Pandák az adatok egyesítése.
Miért képes a Polars felülmúlni a pandákat?
Az összes fenti adatkezelési feladatban a Polarok felülmúlják a Pandákat. Több oka is van annak, hogy a Polars miért teljesíti jobban a Pandákat a végrehajtási idő tekintetében.
- Memória optimalizálás: A Polars a Rust rendszerprogramozási nyelvet használja, amely optimalizálja a memóriahasználatot. Lehetővé teszi a Polars számára, hogy minimalizálja a memóriafoglalásra és -felszabadításra fordított időt. Ez felgyorsítja a végrehajtási időt.
- SIMD (Single Instruction Multiple Data) műveletek: A Polars SIMD műveleteket használ az adatok számításaihoz. Ez azt jelenti, hogy egyetlen utasítással képes ugyanazt a műveletet egyszerre több adatelemen végrehajtani. Ez lehetővé teszi a Polarok számára, hogy sokkal gyorsabban hajtsanak végre műveleteket, mint az egyszálas megközelítést alkalmazó Pandák.
- Lusta értékelés: A Polars lusta kiértékelést használ a műveletek végrehajtásának késleltetésére, amíg szüksége van rájuk. Ez csökkenti azt az időt, amit a Polars felesleges műveletekre fordít, és javítja a teljesítményt.
Bővítse adattudományi készségeit
Számos Python-könyvtár létezik, amelyek segíthetnek az adattudományban. A pandák és a sarkok csak egy kis töredék. A program teljesítményének javítása érdekében több adattudományi könyvtárat kell megismernie. Ez segít összehasonlítani és kiválasztani, hogy melyik könyvtár felel meg leginkább az Ön használati esetének.