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