我在Python 2.6.2中使用NumPy。我试图创建一个小的(长度为3),简单的布尔数组。以下给我一个MemoryError,我认为它不应该。创建布尔型NumPy数组(Python)时出现内存错误(MemoryError)
import numpy as np
cond = np.fromiter((x in [2] for x in [0, 1, 2]), dtype = np.bool)
它给我的错误是:
的MemoryError:不能分配阵列存储器
然而,获得的列表(而不是一个ndarray)的下述方法工作正常(不使用numpy的):
cond = list((x in [2] for x in [0, 1, 2]))
我在Numpy代码中做了什么错误吗?我的感觉是它应该工作。
你的第一个代码适合我。你能发布Python和Numpy的版本吗? – 2010-09-15 12:13:31
对于它的价值,我可以使用python 2.5和numpy 1.1来重现问题,但不能与任何新的更新。在旧版本中,如果您手动指定'count' kwarg(在本例中为'count = 3'),则工作正常。但是,这首先破坏了使用'np.fromiter'的目的。我认为这是一个在1.1到1.5之间的固定值的bug。 – 2010-09-15 13:32:09