使用float64组件的二维数组的最终大小是多少

时间:2015-04-12 13:58:23

标签: python arrays numpy

我使用numpy.array编写了一个 cython 函数来对大数组执行某些计算,例如数组的大小为24000x1500。然后我得到MemoryError

我想知道在python中使用float64组件的二维数组的最终大小是多少?

是否由于我的阵列大小而发生此错误?

我该怎么做才能避免此错误?

1 个答案:

答案 0 :(得分:1)

由于64位浮点占用8个字节,因此您可以轻松估计24,000 * 1500 * 8 = 288,000,000字节的下限,大约为0.3 GB。我不知道numpy数组产生的开销,但我猜这对于一个大小的数组来说并不重要。

根据我在上述评论中链接的答案,您还可以使用arr.numbytes找到尺寸。它还返回数组元素使用的内存。

我可以看到使用那么多内存的程序如何抛出MemoryError。做一些内存分析,看看它是你的大阵列(可能)还是别的东西会占用你的记忆。或者购买更多内存。