如何有效地处理大型复杂的numpy数组?

时间:2017-05-17 12:42:28

标签: python arrays numpy complex-numbers memory-efficient

对于我的研究,我正在使用由复杂数据组成的大型numpy数组。

arr_real = arr.real 
arr_im = arr.imag

存储时,每个约3 GB。加载这些数组是一个耗时的过程,这让我想知道是否有办法加速这个过程

我想到的其中一件事就是将数组拆分为复杂而真实的部分:

{{1}}

并单独保存每个部分。但是,这似乎并没有显着提高处理速度。有一些关于使用大型数组的文档,但我还没有找到有关处理复杂数据的大量信息。是否有智能(呃)方法来处理大型复杂阵列?

1 个答案:

答案 0 :(得分:1)

如果您只需要内存中的部分数组,可以使用memory mapping加载它:

arr = np.load('array.npy', mmap_mode='r')

来自文档:

  

内存映射阵列保留在磁盘上。但是,它可以访问和   像任何ndarray一样切片。内存映射对于特别有用   访问大文件的小片段而不读取整个文件   归档到内存中。