4

我在下面有这个简单的 NumPy/Python 代码:

from numpy import zeros, float32

v = 3039345
d = 400
i = 354993
j = 0

var1 = zeros((v,d), dtype=float32)
var1[i, j] = 0 #the problem pops here

当最后一行被解释时,我有这个:

Process finished with exit code -1073741819 (0xC0000005)

如果 i < 354993 执行很好。我在 Windows 8 64 位上使用 Python 2.7 32 位。是因为内存限制?在这种情况下,让这个工作的最佳解决方案是什么?

4

1 回答 1

2

它是由 32 位版本的 numpy 二进制文件引起的。Numpy 确实使用特定于平台的整数来计算分配的内存区域的大小,并且以字节为单位测量的数组大小不适合 2**32。这听起来像一个错误,因为我认为它应该在创建数组时引发错误。

您可以安装任何 python 和 numpy 的 64 位版本,这将解决您的问题。

于 2016-01-07T23:17:42.790 回答