IPython中的MemoryError(使用Windows)

时间:2015-04-16 18:00:21

标签: python memory numpy

我一直试图在IPython中初始化一个numpy整数数组,即1000 x 1000 x 120,每次我得到一个MemoryError。我不知道为什么会出现这种情况,因为它确实不是那么大的数组。

我的代码很简单:

bigLattice = np.zeros((numsimulations,end2+1,t+1))

让我知道是否有我可以解决的问题,以便numpy可以访问更多内存。

1 个答案:

答案 0 :(得分:3)

浮点数的默认类型是float64,因此矩阵的大小为915Mb

In [1]: a = np.zeros((1000,1000,120))

In [2]: %whos
Variable   Type       Data/Info
-------------------------------
a          ndarray    1000x1000x120: 120000000 elems, type `float64`, 960000000 bytes (915 Mb)

Here's a link您可以在其中找到有关可用dtypes及其限制的详细信息。

如果您只需要存储一个字节的整数值,那么您可以使用int8值进行实例化:

np.zeros((1000,1000,120),dtype=np.int8)

将大小减小到114Mb:

%whos
Variable   Type       Data/Info
-------------------------------
a          ndarray    1000x1000x120: 120000000 elems, type `int8`, 120000000 bytes (114 Mb