如何在 numpy 中填充大数组?

How do I fill a large array in numpy?

我正在尝试填充一个大小为 2 ^ 32 的数组,但在填充的某个阶段,它显示进程已被终止

def MakeArr(n):
    start_time = time.time()

    arr = np.random.randint(1, 2**n, size=2**n, dtype=np.int64)

    print(arr)
    print("Time to create: %s sec" % (time.time() - start_time))
    print("arr len:" + str(len(arr)))
    return arr
sys.setrecursionlimit(1500); n = 32; arr = MakeArr(n)

enter image description here

2^32 的数组对于 python 或 numpy 来说可能太大而无法处理。您可以通过将 dtype 更改为较低的类型来获得更大的数组,例如 np.int8.