Pitääkö paikkansa väittää, että uusi Polars-kirjasto ohittaa Pandat useissa vertailuissa, vai onko Pandas-kirjasto edelleen hallitseva valinta?
Kun suoritat data-analyysitehtäviä, olet todennäköisesti kohdannut Pandas. Se on ollut tietoanalyysin hallitsevin kirjasto pitkään. Polars toisaalta on suhteellisen uusi kirjasto, joka tarjoaa korkean suorituskyvyn ja muistitehokkuuden. Mutta, kumpi on parempi?
Täällä näet Pandan ja Polarin suorituskyvyn vertailun useissa yleisissä tietojenkäsittelytehtävissä.
Suorituskyvyn mittaaminen: Metrics ja Benchmark Dataset
Tässä vertailussa otetaan huomioon Pandan kyky ja Polarit kirjastot, joista voi käsitellä Black Friday -ale -tietojoukkoa Kaggle. Tämä tietojoukko sisältää 550 068 riviä tietoja. Se sisältää tietoja asiakkaiden demografisista tiedoista, ostohistoriasta ja tuotetiedoista.
Reilun suorituskyvyn mittaamisen varmistamiseksi vertailussa käytetään suoritusaikaa kunkin tehtävän vakiosuoritusmittarina. Alusta, jolla kunkin vertailutehtävän koodi suoritetaan, on Google Colab.
Täysi lähdekoodi, joka vertaa Pandas- ja Polars-kirjastoja, on saatavilla osoitteessa a GitHub-arkisto.
Tietojen lukeminen CSV-tiedostosta
Tämä tehtävä vertaa aikaa, joka kuluu kullakin kirjastolla lukeakseen tietoja Black Friday -ale -tietojoukosta. Tietojoukko on mukana CSV-muodossa. Pandat ja Polars tarjoavat samanlaisia toimintoja tähän tehtävään.
Pandat vievät kaksi kertaa enemmän aikaa kuin Polarsilla kuluu Black Friday -ale -tietojoukon tietojen lukemiseen.
Sarakkeiden valinta
Tämä tehtävä mittaa aikaa, joka kuluu kunkin kirjaston sarakkeiden valitsemiseen tietojoukosta. Se sisältää valinnan Käyttäjätunnus ja Ostaa sarakkeita.
Polareilla kuluu huomattavasti vähemmän aikaa sarakkeiden valitsemiseen tietojoukosta verrattuna Pandaan.
Rivien suodatus
Tämä tehtävä vertaa kunkin kirjaston suorituskykyä suodatusriveillä, joissa Sukupuoli sarake on F tietojoukosta.
Polareissa rivien suodattaminen kestää hyvin lyhyen ajan Pandaan verrattuna.
Tietojen ryhmittely ja yhdistäminen
Tämä tehtävä sisältää tietojen ryhmittelyn yhden tai useamman sarakkeen mukaan. Suorita sitten joitain yhdistämistoimintoja ryhmille. Se mittaa aikaa, joka kuluu kunkin kirjaston tietojen ryhmittelyyn Sukupuoli sarakkeessa ja laske kunkin ryhmän keskimääräinen ostosumma.
Jälleen Polars ylittää Pandat. Mutta marginaali ei ole yhtä suuri kuin rivien suodatus.
Toimintojen soveltaminen tietoihin
Tämä tehtävä sisältää funktion käyttämisen yhteen tai useampaan sarakkeeseen. Se mittaa aikaa, joka kuluu kunkin kirjaston kertomiseen Ostaa sarake 2:lla.
Polars-palkkia tuskin näet. Polarit ylittävät jälleen pandat.
Tietojen yhdistäminen
Tämä tehtävä sisältää kahden tai useamman DataFrame-kehyksen yhdistäminen sillä perusteella, että yksi tai useampi yhteinen sarake on olemassa. Se mittaa aikaa, joka kuluu kunkin kirjaston yhdistämiseen Käyttäjätunnus ja Ostaa sarakkeita kahdesta erillisestä DataFramesta.
Tämän tehtävän suorittaminen kestää molemmilta kirjastoilta jonkin aikaa. Mutta Polarsilla menee lähes puolet ajasta Pandalla tietojen yhdistämiseen.
Miksi Polars pystyy ylittämään pandat?
Kaikissa yllä olevissa tietojenkäsittelytehtävissä Polarit suoriutuvat Pandasta paremmin. On useita syitä, miksi Polars voi suoritusajassa ylittää Pandat.
- Muistin optimointi: Polars käyttää Rustia, järjestelmäohjelmointikieltä, joka optimoi muistin käytön. Sen avulla Polars voi minimoida muistin varaamiseen ja purkamiseen käyttämänsä ajan. Tämä nopeuttaa suoritusaikaa.
- SIMD (Single Instruction Multiple Data) -toiminnot: Polars käyttää SIMD-toimintoja tietojen laskemiseen. Tämä tarkoittaa, että se voi käyttää yhtä käskyä suorittaakseen saman toiminnon useille tietoelementeille samanaikaisesti. Tämän ansiosta Polars voi suorittaa operaatioita paljon nopeammin kuin Pandat, jotka käyttävät yksisäikeistä lähestymistapaa.
- Laiska arviointi: Polars käyttää laiskaa arviointia viivyttääkseen toimintojen suorittamista, kunnes se tarvitsee niitä. Tämä vähentää aikaa, jonka Polars käyttää tarpeettomiin toimintoihin, ja parantaa suorituskykyä.
Laajenna tietotieteen taitojasi
Siellä on monia Python-kirjastoja, jotka voivat auttaa sinua tietotieteessä. Pandat ja polarit ovat vain pieni osa. Parantaaksesi ohjelman suorituskykyä sinun tulee tutustua useampaan datatieteen kirjastoon. Tämä auttaa sinua vertailemaan ja valitsemaan käyttötarkoitukseesi parhaiten sopivan kirjaston.