Twórz Pandy 3 razy szybciej dzięki PyPolars

Węzeł źródłowy: 1854103

Twórz Pandy 3 razy szybciej dzięki PyPolars

Dowiedz się, jak przyspieszyć przepływ pracy w Pandach, korzystając z biblioteki PyPolars.


By Satyama Kumara, Entuzjasta uczenia maszynowego i programista



Photo by Tim Guw on Unsplash

 

Pandas to jeden z najważniejszych pakietów Pythona wśród analityków danych do zabawy z danymi. Biblioteka Pandas jest używana głównie do eksploracji danych i wizualizacji, ponieważ zawiera mnóstwo wbudowanych funkcji. Pandy nie radzą sobie z dużymi zbiorami danych, ponieważ nie skalują się ani nie rozdzielają swoich procesów na wszystkie rdzenie procesora.

Aby przyspieszyć obliczenia, można wykorzystać wszystkie rdzenie procesora i przyspieszyć przepływ pracy. Istnieją różne biblioteki typu open source, w tym Dask, Vaex, Modin, Pandarallel, PyPolars itp., które zrównoleglają obliczenia na wielu rdzeniach procesora. W tym artykule omówimy implementację i wykorzystanie biblioteki PyPolars oraz porównamy jej wydajność z biblioteką Pandas.

Co to jest PyPolars?

 
PyPolars to biblioteka ramek danych Pythona o otwartym kodzie źródłowym, podobna do Pandas. PyPolars wykorzystuje wszystkie dostępne rdzenie procesora i dlatego wykonuje obliczenia szybciej niż Pandy. PyPolars ma API podobne do Pand. Jest napisany w rdzy z opakowaniami Pythona.


W idealnym przypadku PyPolars jest używany, gdy dane są za duże dla Pand i za małe dla Sparka


Jak działa PyPolars?

 
Biblioteka PyPolars ma dwa interfejsy API, jeden to Eager API, a drugi to Lazy API. Interfejs API Eager jest bardzo podobny do interfejsu Pandas, a wyniki są generowane zaraz po zakończeniu wykonywania, podobnie jak w przypadku Pand. Lazy API jest bardzo podobne do Sparka, gdzie po wykonaniu zapytania tworzona jest mapa lub plan. Następnie wykonanie jest wykonywane równolegle na wszystkich rdzeniach procesora.



(Zdjęcie autora), interfejsy API PyPolars

 

PyPolars jest w zasadzie powiązaniem Pythona z biblioteką Polars. Najlepszą częścią biblioteki PyPolars jest podobieństwo API do Pand, co ułatwia programistom.

Instalacja:

 
PyPolars można zainstalować z PyPl za pomocą następującego polecenia:

pip install py-polars


i zaimportuj bibliotekę za pomocą

import pypolars as pl


Ograniczenia czasowe testu porównawczego:


Do demonstracji użyłem zbioru danych o dużym rozmiarze (~ 6.4 Gb) zawierającego 25 milionów instancji.




(Zdjęcie autora), czas porównawczy dla podstawowych operacji Pand i Py-Polars

 

W przypadku powyższych porównawczych wartości czasu dla niektórych podstawowych operacji przy użyciu biblioteki Pandas i PyPolars możemy zaobserwować, że PyPolars jest prawie 2x do 3x szybszy niż Pandas.

Teraz wiemy, że PyPolars ma API bardzo podobne do API Pand, ale nadal nie obejmuje wszystkich funkcji Pand. Na przykład nie mamy .describe() zamiast tego możemy użyć funkcji w PyPolars df_pypolars.to_pandas().describe()

Stosowanie:

 

(Kod według autora)

Wnioski:

 
W tym artykule omówiliśmy małe wprowadzenie do biblioteki PyPolars, w tym jej implementację, użycie i porównanie jej wzorcowych wartości czasu z Pandami w przypadku niektórych podstawowych operacji. Należy zauważyć, że PyPolars działa bardzo podobnie do Pand, a PyPolars jest biblioteką oszczędzającą pamięć, ponieważ pamięć przez nią obsługiwana jest niezmienna.

Można przejść przez dokumentacja aby uzyskać szczegółowe informacje o bibliotece. Istnieje wiele innych bibliotek typu open source, które mogą zrównoleglić operacje Pand i przyspieszyć proces. Przeczytać poniższy artykuł poznać 4 takie biblioteki:

4 biblioteki, które mogą zrównoleglić istniejący ekosystem Pand
Rozłóż obciążenie języka Python poprzez przetwarzanie równoległe przy użyciu tych platform

 
Referencje:

[1] Dokumentacja Polars i repozytorium GitHub: https://github.com/ritchie46/polars

 
Dziękuję za przeczytanie

 
Bio: Satyama Kumara jest entuzjastą uczenia maszynowego i programistą. Satyam pisze, na temat nauki o danych i jest czołowym pisarzem w dziedzinie sztucznej inteligencji. Poszukuje pełnej wyzwań kariery w organizacji, która zapewni mu możliwość wykorzystania jego umiejętności technicznych i zdolności.

Oryginalny. Przesłane za zgodą.

Związane z:

Źródło: https://www.kdnuggets.com/2021/05/pandas-faster-pypolars.html

Znak czasu:

Więcej z Knuggety