PyPolarsでパンダを3倍速くする

ソースノード: 1854103

PyPolarsでパンダを3倍速くする

PyPolarsライブラリを使用してPandasワークフローを高速化する方法を学びます。


By サティヤムクマール、機械学習愛好家&プログラマー



による写真 ティム・グー on Unsplash

 

Pandasは、データサイエンティストの中で、データをいじくり回すための最も重要なPythonパッケージのXNUMXつです。 Pandasライブラリは、多数の組み込み関数が付属しているため、主にデータの探索と視覚化に使用されます。 Pandasは、CPUのすべてのコアにプロセスをスケーリングまたは分散しないため、大きなサイズのデータ​​セットを処理できません。

計算を高速化するために、CPUのすべてのコアを利用して、ワークフローを高速化できます。 Dask、Vaex、Modin、Pandarallel、PyPolarsなど、CPUの複数のコア間で計算を並列化するさまざまなオープンソースライブラリがあります。 この記事では、PyPolarsライブラリの実装と使用法について説明し、そのパフォーマンスをPandasライブラリと比較します。

PyPolarsとは何ですか?

 
PyPolarsは、Pandasに似たオープンソースのPythonデータフレームライブラリです。 PyPolarsはCPUの利用可能なすべてのコアを利用するため、Pandasよりも高速に計算を実行します。 PyPolarsには、Pandasと同様のAPIがあります。 Pythonラッパーで錆びて書かれています。


理想的には、PyPolarsは、データがPandasには大きすぎ、Sparkには小さすぎる場合に使用されます。


PyPolarsはどのように機能しますか?

 
PyPolarsライブラリにはXNUMXつのAPIがあります。XNUMXつはEagerAPIで、も​​うXNUMXつはLazyAPIです。 Eager APIはPandasと非常によく似ており、Pandasと同様に、実行が完了した直後に結果が生成されます。 Lazy APIはSparkと非常によく似ており、クエリの実行時にマップまたはプランが形成されます。 次に、CPUのすべてのコア間で実行が並行して実行されます。



(作成者による画像)、PyPolars API

 

PyPolarsは、基本的にはPolarsライブラリへのPythonバインディングです。 PyPolarsライブラリの最も優れている点は、APIがPandasと類似していることです。これにより、開発者は簡単に利用できます。

インストール:

 
PyPolarsは、次のコマンドを使用してPyPlからインストールできます。

pip install py-polars


を使用してライブラリをインポートします

import pypolars as pl


ベンチマーク時間の制約:


デモンストレーションには、6.4万のインスタンスを持つ大きなサイズのデータ​​セット(〜25Gb)を使用しました。




(著者による画像)、パンダとパイポーラーの基本操作のベンチマーク時間番号

 

PandasおよびPyPolarsライブラリを使用したいくつかの基本操作の上記のベンチマーク時間数では、PyPolarsがPandasよりもほぼ2倍から3倍高速であることがわかります。

これで、PyPolarsのAPIがPandasのAPIと非常に似ていることがわかりましたが、それでもPandasのすべての機能を網羅しているわけではありません。 たとえば、私たちは持っていません .describe() 代わりに、PyPolarsの関数を使用できます df_pypolars.to_pandas().describe()

使用法:

 

(作成者によるコード)

結論:

 
この記事では、PyPolarsライブラリの実装、使用法、およびいくつかの基本的な操作についてのベンチマーク時間数とPandasとの比較を含む簡単な紹介を取り上げました。 PyPolarsはPandasと非常によく似た動作をすることに注意してください。また、PyPolarsは、それに裏打ちされたメモリが不変であるため、メモリ効率の高いライブラリです。

XNUMXつは通過することができます ドキュメント ライブラリの詳細を理解するため。 Pandasの操作を並列化し、プロセスを高速化できる他のさまざまなオープンソースライブラリがあります。 読む 下記記事 4つのそのようなライブラリを知るために:

4既存のパンダエコシステムを並列化できるライブラリ
これらのフレームワークを使用した並列処理により、Pythonワークロードを分散します

 
参照:

[1] PolarsドキュメントとGitHubリポジトリ: https://github.com/ritchie46/polars

 
読んでくれてありがとう

 
バイオ: サティヤムクマール は機械学習の愛好家でありプログラマーです。 サティヤム 書き込み データサイエンスについて、AIのトップライターです。 彼は、彼の技術的なスキルと能力を活用する機会を提供する組織で、やりがいのあるキャリアを求めています。

元の。 許可を得て転載。

関連する

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

タイムスタンプ:

より多くの KDナゲット