私の研究では、複雑なデータで構成される巨大な配列を扱っています。
arr = np.empty((15000, 25400), dtype='complex128')
np.save('array.npy'), arr)
保存すると、それぞれ約 3 GB になります。これらのアレイのロードは時間のかかるプロセスであり、このプロセスを高速化する方法があるかどうか疑問に思いました。
私が考えていたことの 1 つは、配列をその複雑な部分と実際の部分に分割することでした。
arr_real = arr.real
arr_im = arr.imag
各パーツを分けて保存します。ただし、これで処理速度が大幅に向上するようには見えませんでした。大規模な配列の操作に関するドキュメントがいくつかありますが、複雑なデータの操作に関する情報はあまり見つかりませんでした。大規模で複雑な配列を操作するためのよりスマートな方法はありますか?
メモリ内の配列の一部のみが必要な場合は、メモリ マッピングを使用してそれを読み込むことができます。
arr = np.load('array.npy', mmap_mode='r')
ドキュメントから:
メモリ マップド アレイはディスク上に保持されます。ただし、ndarray と同様にアクセスしてスライスすることができます。メモリ マッピングは、ファイル全体をメモリに読み込まずに、大きなファイルの小さなフラグメントにアクセスする場合に特に便利です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加