Arb*_*tel 0 python memory numpy
嗨我有一个简单的行为一个相当大的数据集创建一个随机数组:
import numpy as np
import random
N=276233
L=138116
np.random.random([L,N])
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
Traceback (most recent call last):
File "<string>", line 3 (23), in <module>
File "mtrand.pyx", line 760, in mtrand.RandomState.random_sample (numpy\random\mtrand\mtrand.c:5713)
File "mtrand.pyx", line 137, in mtrand.cont0_array (numpy\random\mtrand\mtrand.c:1300)
MemoryError
Run Code Online (Sandbox Code Playgroud)
什么是解决方案,阵列的限制是什么?
您正在尝试创建一个需要284GB内存的数组:
In [16]: L * N * 8 / (1024. ** 3)
Out[16]: 284.25601890683174
Run Code Online (Sandbox Code Playgroud)
要么购买更多RAM(并确保您的系统可以处理它),要么找到一种不必生成276,233x 138,116矩阵的方法.