【问题标题】:What is the ultimate size of a two-dimensional array with float64 components具有 float64 分量的二维数组的最终大小是多少
【发布时间】:2015-04-12 13:58:22
【问题描述】:

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

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

这个错误是由于我的数组的大小而发生的吗?

我应该怎么做才能避免这个错误?

【问题讨论】:

标签: python arrays numpy


【解决方案1】:

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

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

我可以看到使用这么多内存的程序如何抛出MemoryError。做一些内存分析,看看它是你的大数组(可能)还是其他吃掉你的内存的东西。或者购买更多内存。

【讨论】:

    猜你喜欢
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    • 2017-07-23
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多