Ar teisinga teigti, kad naujoji „Polars“ biblioteka lenkia „Pandas“ pagal kelis etalonus, ar „Pandas“ biblioteka vis dar yra dominuojantis pasirinkimas?
Tikėtina, kad atlikdami duomenų analizės užduotis susidūrėte su pandomis. Ji ilgą laiką buvo dominuojanti duomenų analizės biblioteka. Kita vertus, „Polars“ yra palyginti nauja biblioteka, kuri gali pasigirti dideliu našumu ir atminties efektyvumu. Bet kuris iš jų geresnis?
Čia pamatysite Pandos ir Polars našumo palyginimą atliekant įvairias įprastas duomenų tvarkymo užduotis.
Našumo vertinimas: metrika ir palyginimo duomenų rinkinys
Atliekant šį palyginimą bus atsižvelgta į pandų gebėjimus ir Poliarai bibliotekas, kad galėtumėte manipuliuoti Juodojo penktadienio išpardavimo duomenų rinkiniu Kaggle. Šiame duomenų rinkinyje yra 550 068 duomenų eilutės. Tai apima informaciją apie klientų demografinius rodiklius, pirkimo istoriją ir išsamią informaciją apie produktą.
Siekiant užtikrinti teisingus našumo matavimus, lyginant bus naudojamas vykdymo laikas kaip standartinė kiekvienos užduoties našumo metrika. Kiekvienos palyginimo užduoties kodo paleidimo platforma bus „Google Colab“.
Visą šaltinio kodą, palyginantį Pandas ir Polars bibliotekas, rasite a GitHub saugykla.
Duomenų skaitymas iš CSV failo
Šioje užduotyje palyginamas laikas, kurio kiekviena biblioteka nuskaito duomenis iš juodojo penktadienio išpardavimo duomenų rinkinio. Duomenų rinkinys yra CSV formatu. Pandos ir Polars siūlo panašias funkcijas šiai užduočiai.
Pandoms reikia dvigubai daugiau laiko, nei Polars nuskaito duomenis iš juodojo penktadienio išpardavimo duomenų rinkinio.
Stulpelių pasirinkimas
Ši užduotis įvertina laiką, per kurį kiekviena biblioteka pasirenka stulpelius iš duomenų rinkinio. Tai apima pasirinkimą Vartotojo ID ir Pirkimas stulpelius.
„Polars“ užtrunka žymiai trumpiau, kol pasirenka stulpelius iš duomenų rinkinio, palyginti su „Panda“.
Eilučių filtravimas
Ši užduotis palygina kiekvienos bibliotekos našumą filtravimo eilutėse, kuriose yra Lytis stulpelis yra F iš duomenų rinkinio.
Polarams reikia labai trumpo laiko, palyginti su pandomis, kad išfiltruotų eilutes.
Duomenų grupavimas ir agregavimas
Ši užduotis apima duomenų grupavimą pagal vieną ar daugiau stulpelių. Tada grupėse atlieka tam tikras agregavimo funkcijas. Jis matuoja laiką, per kurį kiekviena biblioteka sugrupuoja duomenis pagal Lytis stulpelį ir apskaičiuokite kiekvienos grupės vidutinę pirkimo sumą.
Vėlgi, Polars lenkia Pandas. Tačiau marža nėra tokia didelė, kaip filtruojant eilutes.
Funkcijų taikymas duomenims
Ši užduotis apima funkcijos taikymą vienam ar daugiau stulpelių. Jis matuoja laiką, kurio kiekviena biblioteka padaugina Pirkimas stulpelis po 2.
Jūs vos matote „Polars“ juostą. Polarai dar kartą lenkia Pandas.
Duomenų sujungimas
Ši užduotis apima sujungiant du ar daugiau duomenų rėmelių remiantis vienu ar daugiau bendrų stulpelių. Jis matuoja laiką, kurio reikia kiekvienai bibliotekai sujungti Vartotojo ID ir Pirkimas stulpelius iš dviejų atskirų duomenų rėmelių.
Šiai užduočiai atlikti abi bibliotekos užtrunka šiek tiek laiko. Tačiau „Polars“ užtrunka beveik pusę laiko, kol „Pandas“ sujungia duomenis.
Kodėl „Polars“ gali pranokti pandas?
Visose aukščiau nurodytose duomenų tvarkymo užduotyse „Polars“ lenkia „Pandas“. Yra keletas priežasčių, kodėl „Polars“ gali pranokti „Pandas“ vykdymo laiku.
- Atminties optimizavimas: „Polars“ naudoja „Rust“ – sistemos programavimo kalbą, kuri optimizuoja atminties naudojimą. Tai leidžia „Polars“ iki minimumo sumažinti laiką, skiriamą atminčiai ir paskirstymui. Tai pagreitina vykdymo laiką.
- SIMD (Single Instruction Multiple Data) operacijos: „Polars“ naudoja SIMD operacijas duomenų skaičiavimui atlikti. Tai reiškia, kad ji gali naudoti vieną instrukciją, kad vienu metu atliktų tą pačią operaciją su keliais duomenų elementais. Tai leidžia „Polars“ atlikti operacijas daug greičiau nei „Panda“, kurioms taikomas vienos gijos metodas.
- Tingus įvertinimas: „Polars“ naudoja tingų vertinimą, kad atidėtų operacijų vykdymą, kol jai jų prireiks. Tai sumažina laiką, kurį „Polars“ skiria nereikalingoms operacijoms, ir pagerina našumą.
Išplėskite savo duomenų mokslo įgūdžius
Yra daug Python bibliotekų, kurios gali jums padėti duomenų moksle. Pandos ir poliarai yra tik nedidelė dalis. Norėdami pagerinti programos našumą, turėtumėte susipažinti su daugiau duomenų mokslo bibliotekų. Tai padės palyginti ir pasirinkti, kuri biblioteka geriausiai tinka jūsų naudojimo atvejui.