Python中的数组太大错误

时间:2015-05-25 14:57:18

标签: python numpy

我在python中有这段代码:

from numpy import *
import itertools

m, n  = 6, 10
set_m = [i + 1 for i in range(m + 1)]
comb  = zeros(((m + 1) ** n, n), dtype=int)

k = 0
for i in itertools.product(set_m, repeat=n):
    comb[k][:] = i
    k += 1

但是当我运行它时,我收到了这个错误:

Traceback (most recent call last):
  File "main.py", line 33, in <module>
    comb = zeros(((m + 1) ** n, n), dtype=int)
ValueError: array is too big.

1 个答案:

答案 0 :(得分:4)

如果您确定必须拥有十亿个元素数组,并且无论如何都无法解决(有时会发生,但不是每天都有),您可以使用memmap在硬盘驱动器中创建数组的RAM内存。但我认为寻找重写代码的方法是明智的,以避免做这么慢的事情。