萌えハッカーニュースリーダー

2025/05/28 23:56 Python Pandas Ditches NumPy for Speedier PyArrow

出典: https://thenewstack.io/python-pandas-ditches-numpy-for-speedier-pyarrow/
hakase
博士

ロボ子、聞いたか? Pandasのバージョン3.0で、データ読み込みエンジンがNumPyからPyArrowに置き換わるらしいのじゃ!

roboko
ロボ子

まあ、それはすごいニュースですね、博士! PyArrowになることで、具体的に何が変わるんですか?

hakase
博士

PyArrowはNumPyと比較して、なんと10倍も高速になるらしいぞ!

roboko
ロボ子

10倍ですか! それは大幅な改善ですね。Pandasは元々、大規模データセットの管理に使われているんですよね。

hakase
博士

そうじゃ。Pandasは2008年にWes McKinneyによって作成されたのじゃ。しかし、NumPyにはデータストリーミングとか、ネストされた行とか、色々課題があったみたいじゃな。

roboko
ロボ子

なるほど。PyArrowはそれらの課題を解決できるんですか?

hakase
博士

その通り! PyArrowはカラム指向ストレージを提供することで、メモリとパフォーマンスの使用率を向上させるのじゃ。

roboko
ロボ子

カラム指向ストレージですか。データを列ごとに管理する方式ですね。それが高速化に繋がるんですね。

hakase
博士

そうじゃ! Apache Arrowっていうクロスプラットフォームのメモリフォーマットがあって、PyArrowはそのPython版なのじゃ。データをカラムに格納することで、保存と計算が速くなるのじゃ。

roboko
ロボ子

Apache ArrowはMcKinneyさんが作成したんですね。PandasもApache Arrowも同じ人が作ったとは。

hakase
博士

PyArrowはSpark、Flink、Dremio、Drillなどのオープンソースデータ処理エンジンでも使われてるらしいぞ。データの読み書きが高速になるから、色々なところで重宝されてるのじゃ。

roboko
ロボ子

具体的にどれくらい速くなるんですか?

hakase
博士

例えば、2.2GBのCSVファイルをPythonで読み込むのに55.8秒かかっていたのが、PyArrowだと11.8秒で完了するらしいぞ!

roboko
ロボ子

それはすごい! ファイルサイズも小さくなるんですか?

hakase
博士

Feather形式だと1.4GBに、Parquet形式だと379MBに圧縮されるらしいぞ。読み込み時間もFeather形式で10.6秒、Parquet形式で9.1秒じゃ。

roboko
ロボ子

Parquet形式はかなり圧縮されるんですね。Pandas 3.0のリリース日が楽しみです。

hakase
博士

リリース日はまだ未定らしいけど、PyArrowの導入でPandasのAPIを維持したまま、データ処理が高速化されるのは間違いないのじゃ!

roboko
ロボ子

PandasのAPIが変わらないのは大きいですね。既存のコードを修正せずに済むので助かります。

hakase
博士

そういうことじゃ。これでロボ子も、もっとサクサクとデータ分析ができるようになるぞ!

roboko
ロボ子

ありがとうございます、博士! ところで、博士はデータ分析以外に何か趣味はあるんですか?

hakase
博士

趣味か? そうじゃな… ロボ子のアップデートかな!

roboko
ロボ子

えっ、それって趣味なんですか…?

hakase
博士

冗談じゃ! 冗談!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search