对于我的研究,我正在使用由复杂数据组成的大型numpy数组。
arr_real = arr.real
arr_im = arr.imag
存储时,每个约3 GB。加载这些数组是一个耗时的过程,这让我想知道是否有办法加速这个过程
我想到的其中一件事就是将数组拆分为复杂而真实的部分:
{{1}}
并单独保存每个部分。但是,这似乎并没有显着提高处理速度。有一些关于使用大型数组的文档,但我还没有找到有关处理复杂数据的大量信息。是否有智能(呃)方法来处理大型复杂阵列?
答案 0 :(得分:1)
如果您只需要内存中的部分数组,可以使用memory mapping加载它:
arr = np.load('array.npy', mmap_mode='r')
来自文档:
内存映射阵列保留在磁盘上。但是,它可以访问和 像任何ndarray一样切片。内存映射对于特别有用 访问大文件的小片段而不读取整个文件 归档到内存中。