1

メモリのオーバーヘッドができるだけ低くなるように、パンダを構成またはパッチすることに興味があります。実験では、それぞれ 5000 万の uint32 値を含む 2 つの numpy 配列を作成しました。これらの配列を numpy 形式で保存するには、200 + 200 = 400 M バイトが必要です。配列の 1 つを Series オブジェクト (index=None) にラップすると、最大 600 MB のメモリが消費されます。2 つの配列を DataFrame オブジェクト (インデックス = なし) にラップすると、メモリ要件は ~1600 M バイトになります。

追加のメモリ要件は、Series ストレージでは #rows * 8 バイト、DataFrame ストレージでは #rows * (#columns + 1) * 8 バイトのようです。numpy元の配列と一緒に Series と DataFrame オブジェクトに格納されている余分なデータを正確に説明できますか?

4

1 に答える 1

1

余分なストレージは、行インデックスが 64 ビット整数として格納されているためです。ユースケースのこのメモリ使用量の問題に対処するための未解決の問題があります: https://github.com/pydata/pandas/issues/939

于 2012-03-24T21:51:42.530 に答える