如何有效地处理大型复杂的 numpy 数组?
How to efficiently work with large complex numpy arrays?
为了我的研究,我正在处理由复杂数据组成的大型 numpy 数组。
arr = np.empty((15000, 25400), dtype='complex128')
np.save('array.npy'), arr)
存储时,它们每个大约 3 GB。加载这些数组是一个耗时的过程,这让我想知道是否有办法加快这个过程
我正在考虑的一件事是将数组拆分为复数和实数部分:
arr_real = arr.real
arr_im = arr.imag
并分别保存每个部分。但是,这似乎并没有显着提高处理速度。有一些关于处理大型数组的文档,但我没有找到太多关于处理复杂数据的信息。是否有处理大型复杂数组的智能(呃)方法?
如果您只需要内存中的部分数组,您可以使用 memory mapping:
加载它
arr = np.load('array.npy', mmap_mode='r')
来自文档:
A memory-mapped array is kept on disk. However, it can be accessed and
sliced like any ndarray. Memory mapping is especially useful for
accessing small fragments of large files without reading the entire
file into memory.
为了我的研究,我正在处理由复杂数据组成的大型 numpy 数组。
arr = np.empty((15000, 25400), dtype='complex128')
np.save('array.npy'), arr)
存储时,它们每个大约 3 GB。加载这些数组是一个耗时的过程,这让我想知道是否有办法加快这个过程
我正在考虑的一件事是将数组拆分为复数和实数部分:
arr_real = arr.real
arr_im = arr.imag
并分别保存每个部分。但是,这似乎并没有显着提高处理速度。有一些关于处理大型数组的文档,但我没有找到太多关于处理复杂数据的信息。是否有处理大型复杂数组的智能(呃)方法?
如果您只需要内存中的部分数组,您可以使用 memory mapping:
加载它arr = np.load('array.npy', mmap_mode='r')
来自文档:
A memory-mapped array is kept on disk. However, it can be accessed and sliced like any ndarray. Memory mapping is especially useful for accessing small fragments of large files without reading the entire file into memory.