私は最近、PyTables について学び始めましたが、非常に興味深いものでした。私の質問は:
- 巨大なデータセットに関して、データベースに対する PyTables の基本的な利点は何ですか?
- このパッケージの基本的な目的は何ですか?
- 大きなデータセットの分析に本当に役立ちますか? 例と比較の助けを借りて、誰でも詳しく説明できますか?
皆さん、ありがとうございました。
巨大なデータセットに関して、データベースに対する PyTables の基本的な利点は何ですか?
事実上、それはデータベースです。もちろん、これは 1 レベルのキー値データベースdbm
(明らかに柔軟性が低い) やリレーショナル データベースsqlite3
(より強力ですが、より複雑) ではなく、階層型データベースです。
しかし、非数値固有のデータベースに対する主な利点は、たとえば、ndarray
プレーンな Python に対するnumpy の利点とまったく同じですlist
。多くのベクトル化された数値演算を実行するために最適化されているため、それを使用している場合は、時間とスペースが少なくて済みます。
このパッケージの基本的な目的は何ですか
フロントページの最初の行(または、必要に応じて FAQの最初の行)からの引用:
PyTables は、階層的なデータセットを管理するためのパッケージであり、非常に大量のデータを効率的かつ簡単に処理できるように設計されています。
MainFeaturesを一覧表示するページもあり、フロント ページの上部近くにリンクされています。
(NumPy と Pandas で同じ種類の構造化を行うことができるので、PyTables で何が重要なのか)?
本当に?RAMが16GBしかないマシンで、numpyまたはpandasで64GBのデータを処理できますか? それとも32ビットマシン?
いいえ、できません。データを、必要に応じて読み込み、処理、保存する一連の個別のセットに分割しない限り、それははるかに複雑になり、はるかに遅くなります。
通常の Python リストとイテレータだけで同じことができるのに、なぜ numpy が必要なのかを尋ねるようなものです。Pure Python は、8 個の float の配列がある場合は優れていますが、10000x10000 の配列がある場合はそうではありません。numpy は、10000x10000 のアレイがいくつかある場合には最適ですが、サイズが最大 20GB の相互接続されたアレイが多数ある場合にはそうではありません。
大きなデータセットの分析に本当に役立ちますか?
はい。
例を挙げて詳しく説明できる人はいますか…</p>
はい。ここにすべての例をコピーするのではなく、ドキュメントの最初のページにある簡単な例、ソース ツリーの多数の例、先頭から 2 回クリックするだけの実際の使用例へのリンクを参照してください。ドキュメントのページなど?
PyTables の有用性を確信したい場合は、いずれかの例を取り上げて 32GB 相当のデータにスケールアップしてから、まったく同じことを numpy または pandas で行う方法を考えてみてください。