最近の Python 開発をよく知っている人なら、データを操作するための新しいライブラリである Polars について聞いたことがあるでしょう。 pandas は長い間頼りになるライブラリでしたが、特に大きなデータセットの処理に関しては、Polars が話題を呼んでいます。では、Polars にとって何が重要なのでしょうか?パンダとどう違うの?分解してみましょう。
Polars は、Rust (高速で最新のプログラミング言語) で構築された無料のオープンソース ライブラリです。 Python 開発者がより高速かつ効率的な方法でデータを処理できるように設計されています。これは、パンダが苦労する可能性のある非常に大規模なデータセットを扱うときに威力を発揮するパンダの代替手段と考えてください。
Pandas は何年も前から存在しており、多くの人が今でも愛用しています。しかし、データが大きくなり複雑になるにつれて、パンダにはいくつかの弱点が見え始めました。 Polars の作成者である Ritchie Vink は、これらの問題に気づき、より高速で効率的なものを作成することにしました。パンダの作成者である ウェス・マッキニー でさえ、「パンダについて嫌いな 10 のこと」 というタイトルのブログ投稿で、特に大規模なデータセットの場合、パンダには何らかの改善が必要であると認めています。
そこで、Polars が登場します。Polars は、パンダがビッグデータを処理する際に苦労する 2 つの点である、超高速でメモリ効率が高いように設計されています。
Polars は 本当に速いです 。実際、いくつかのベンチマークでは、データのフィルタリングやグループ化などの一般的な操作を実行する場合、Polars は pandas よりも最大 5 ~ 10 倍高速であることが示されています。この速度の違いは、大規模なデータセットを扱う場合に特に顕著です。
メモリに関しては、Polars の方がはるかに効率的です。パンダよりも5 ~ 10 倍少ないメモリを使用します。つまり、メモリの問題が発生することなく、はるかに大規模なデータセットを操作できます。
Polars は 遅延実行 と呼ばれるものを使用します。これは、各操作を作成したときにすぐに実行されないことを意味します。代わりに、一連の操作が記述されるまで待機してから、それらをすべて一度に実行します。これにより、最適化と処理の高速化が可能になります。一方、Pandas はすべての操作を即座に実行しますが、大きなタスクの場合は遅くなる可能性があります。
Polars は、複数の CPU コアを同時に使用してデータを処理できるため、大規模なデータセットの処理がさらに高速になります。 Pandas はほとんどがシングル スレッドです。つまり、一度に 1 つの CPU コアしか使用できないため、特に大規模なデータセットの場合、処理速度が遅くなります。
Polars が速いのにはいくつかの理由があります:
Rust と Apache Arrow のこの組み合わせにより、速度とメモリ使用量の点で、Polars は pandas よりも優れています。
Polars はビッグデータに最適ですが、pandas も依然としてその役割を果たしています。 Pandas は 小規模から中規模のデータセット で非常にうまく機能し、非常に長い間存在しているため、大量の機能と巨大なコミュニティがあります。したがって、巨大なデータセットを扱っていない場合でも、パンダが最良の選択肢になる可能性があります。
ただし、データセットが大きくなるにつれて、pandas はより多くのメモリを使用して速度が低下する傾向があるため、そのような状況では Polars の方が良い選択肢となります。
次の場合は Polars の使用を検討してください。
ポーラーズにもパンダにもそれぞれの強みがあります。小規模から中規模のデータセットを扱う場合、pandas は依然として優れたツールです。しかし、大規模なデータセットを扱っていて、より高速でメモリ効率の高いものが必要な場合は、Polars を試してみる価値は間違いなくあります。 Rust と Apache Arrow のおかげでパフォーマンスが向上し、データ集約型のタスクに最適なオプションとなっています。
Python が進化し続けるにつれて、Polars がビッグデータを処理するための新しい goto ツールになる可能性があります。
コーディングを楽しんでください? ?
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3