繁体   English   中英

为什么numpy在插入数组时立即崩溃?

[英]Why does numpy crash instantly upon an array insertion?

我在我的一个项目中遇到了一些奇怪的行为。 具体来说,运行此代码时:

import numpy as np 

coefficientMatrix = np.zeros([12500, 43750])
coefficientMatrix[229, 798] = 1.0942131827

我的Python进程崩溃了:

错误信息

这里有什么问题?

系统规格(如果在此处相关):Windows 7 x64、8Gb RAM,Python 2.7 32位,numpy 1.9.2。

在分配给系数np.zeros的元素而不是使用np.zeros创建数组时会出现MemoryError的原因是,大多数操作系统(包括Windows 7)都使用惰性内存分配

使用np.zeros实例化数组时,Windows仅分配虚拟内存地址空间,而不分配物理RAM。 但是,当您实际尝试写入该内存块时,操作系统将需要找到足够的物理内存来容纳该阵列。 如果这样做失败,您将得到MemoryError

由于您的Python进程是32位的, 因此它最多可以处理4GB的内存(甚至可能更少) 一个12500x43750的float64值数组将占用4.375GB的内存,因此使用32位Python根本无法拥有那么大的数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM