【问题标题】:Numpy: creating an empty array results in memory error?Numpy:创建一个空数组会导致内存错误?
【发布时间】:2014-07-04 17:49:28
【问题描述】:

我需要在一个 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])

【问题讨论】:

  • 要么购买 134 GB 的 RAM,要么制作一个更小的阵列。

标签: python arrays memory numpy


【解决方案1】:

正如@Jaime 在 cmets 中所说,您的数组太大了。如果你真的需要这么大的阵列,你可以使用numpy.memmap() 来使用硬盘驱动阵列:

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

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

【讨论】:

  • 奇怪,我还剩下数百个 Gig,但它显示以下错误:[Errno 28] 设备上没有剩余空间
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-01
  • 2021-08-10
  • 2021-09-23
  • 2020-08-08
  • 1970-01-01
  • 2018-06-26
  • 1970-01-01
相关资源
最近更新 更多