在没有内存的情况下,如何读取9.4GB numpy阵列

2024-04-26 10:33:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个预计算的numpy数组,占用的空间不到9.5gb。我将它保存为npy文件,并使用h5py作为hdf5文件。虽然在与解释器交互工作时,我可以使用任何一种格式读入这个数组,但是,当我在实际运行模块时读入它时,我会得到一个“内存错误”:

File "/usr/local/lib/python2.7/dist-packages/h5py/_hl/dataset.py", line 440, in __getitem__
    arr = numpy.ndarray(mshape, new_dtype, order='C')
MemoryError

无论我保存/读取npy文件还是hdf5文件,都会发生这种情况。

我试过用numpy.memmap因此,我可以用磁盘内存代替RAM,但似乎无法准确读取阵列:

^{pr2}$

我不明白什么np.memmap?我可以用它来读取这个numpy数组吗?

如果没有,除了将数组拆分并保存在多个文件中,我应该怎么做?

为什么我在解释器或pdb中读取数组时没有问题,但在模块中读取时却没有内存错误?


Tags: 模块文件内存numpy格式错误空间数组