web-dev-qa-db-ja.com

numpy.ndarrayとpandas.DataFrame

プログラムで統計データフレームを保持するデータ構造の基盤の選択について、戦略的な決定を行う必要があります。

1つの大きなテーブルに数十万のレコードを保存します。各フィールドは、短い文字列を含む異なるタイプになります。リアルタイムで迅速に実行する必要があるデータに対して、重回帰分析と操作を実行します。また、比較的人気があり、十分にサポートされているものを使用する必要もあります。

次の競技者について知っています。

_array.array_のリスト

それが最も基本的なことです。残念ながら、文字列はサポートしていません。とにかく私はその統計的な部分のためにnumpyを使用する必要があるので、これは問題外です。

_numpy.ndarray_

ndarrayには、各列に異なるタイプの配列を保持する機能があります(例:np.dtype([('name', np.str_, 16), ('grades', np.float64, (2,))]))。当たり前のようですが...

_pandas.DataFrame_

これは統計的な使用を念頭に置いて構築されていますが、十分に効率的ですか?

私は、_pandas.DataFrame_が _numpy.ndarray_ に基づいていないことを読みました(同じインターフェイスを共有していますが)。誰かがそれに光を当てることができますか?それとも、もっと良いデータ構造がありますか?

17
Adam Ryczkowski

pandas.DataFrameは素晴らしく、多くのnumpyと非常によく相互作用します。 DataFrameの多くはCythonで記述されており、非常に最適化されています。使いやすさとPandas APIの豊富さは、numpyを中心に独自のインターフェースを展開することで得られる潜在的なメリットをはるかに上回ります。

20
daniel