IPython中的MemoryError(使用Windows)

IPython中的MemoryError(使用Windows),python,memory,numpy,Python,Memory,Numpy,我一直在尝试在IPython中初始化一个整数的numpy数组,它是1000 x 1000 x 120,每次我得到一个MemoryError。我不知道为什么会出现这种情况,因为它实际上并没有那么大的数组 我的代码很简单: bigLattice = np.zeros((numsimulations,end2+1,t+1)) 请告诉我是否有什么可以修复的,以便numpy可以访问更多内存。浮点数字的默认类型是float64,因此矩阵的大小是915Mb In [1]: a = np.zeros((100

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

我的代码很简单:

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

请告诉我是否有什么可以修复的,以便numpy可以访问更多内存。

浮点数字的默认类型是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)
您可以在此处找到有关可用
d类型及其限制的详细信息

如果只需要存储一个字节的整数值,则可以使用
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

浮点数的默认类型是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)
您可以在此处找到有关可用
d类型及其限制的详细信息

如果只需要存储一个字节的整数值,则可以使用
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

浮点数的默认类型是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)
您可以在此处找到有关可用
d类型及其限制的详细信息

如果只需要存储一个字节的整数值,则可以使用
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

浮点数的默认类型是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)
您可以在此处找到有关可用
d类型及其限制的详细信息

如果只需要存储一个字节的整数值,则可以使用
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

这太完美了,谢谢!是否有方法使用大于255的整数值?
uint16
uint32
,具体取决于您的需要。uint16为228Mb,UINT32为457Mb。这太完美了,谢谢!是否有方法使用大于255的整数值?
uint16
uint32
,具体取决于您的需要。uint16为228Mb,UINT32为457Mb。这太完美了,谢谢!是否有方法使用大于255的整数值?
uint16
uint32
,具体取决于您的需要。uint16为228Mb,UINT32为457Mb。这太完美了,谢谢!是否有方法使用大于255的整数值?
uint16
uint32
,具体取决于您的需要。uint16为228Mb,uint32为457Mb