私はPythonを使用していくつかの大きなファイルを分析しており、メモリの問題が発生しているため、sys.getsizeof()を使用して使用状況を追跡しようとしていますが、numpy配列での動作です。奇妙です。これが私が開かなければならないアルベドの地図を含む例です:
>>> numpyをnpとしてインポート>>>構造体をインポート>>> sysからインポートgetsizeof>>> f = open( "Albedo_map.assoc"、 "rb")>>> getsizeof(f)144>>> albedo = struct.unpack( "%df"%(7200 * 3600)、f.read(7200 * 3600 * 4))>>> getsizeof(albedo)207360056>>> albedo = np.array(albedo).reshape(3600,7200)>>> getsizeof(albedo)80
データはまだそこにありますが、オブジェクトのサイズである3600x7200ピクセルマップは約200Mbから80バイトになりました。私の記憶の問題が終わり、すべてを厄介な配列に変換することを願っていますが、この動作が真実である場合、何らかの形で情報理論や熱力学などの法則に違反するだろうと感じているので、私はそれを信じる傾向がありますgetsizeof()はnumpy配列では機能しません。何かアイデアはありますか?