Numpy:创建一个空数组导致内存错误?

时间:2014-05-16 04:11:28

标签: python arrays memory numpy

我需要在numpy数组中存储大量信息。它需要具有以下形状:

facefeature1s = np.empty([2000,64,64,64,32])

当我运行它时,我收到内存错误。我该怎么办?

错误是:

    MemoryError                               Traceback (most recent call last)
<ipython-input-271-2c56a37b4a7c> in <module>()
----> 1 facefeature1s = np.empty([2000,64,64,64,32])

1 个答案:

答案 0 :(得分:8)

@Jaime在评论中说,你的阵列太大了。如果你真的需要这么庞大的阵列,你可以使用numpy.memmap()使用硬盘来处理阵列:

a = np.memmap('filename.myarray', dtype=np.float64, mode='w+',
              shape=(2000, 64, 64, 64, 32))

下次打开数组时,请使用mode='r'mode='r+'