【发布时间】:2012-04-11 05:36:03
【问题描述】:
如果我比较两个 float64 类型的 ndarray,其中一个为空,我会得到一个空的 bool 数组:
x = np.array([1.0,2.1]) #dtype is float64
y = np.array([]) #dtype is float64
x==y 返回一个 dtype 为 bool 的空 ndarray。
但是,如果我比较两个 int32 类型的 ndarray,其中一个是空的,我会得到 False:
a = np.array([1,2])
b = np.array([], dtype='int32')
a==b 返回 False
什么给了?为什么返回的类型不同?我要做的是比较两个float64 类型的ndarray。
这是在 python 2.6.4、numpy 1.6.1、Windows XP 上完成的
编辑:“试图做的是比较'float5'类型的两个ndarrays”->“试图比较'float64'类型的两个ndarrays”。
【问题讨论】:
-
我无法在我尝试过的任何 python/numpy/platform 组合上重现浮点大小写,包括 MacOS 10.6/python 2.5/numpy 1.3、Linux 64 位/python 2.6 /numpy 1.4 和 Windows 7 32 位/python 2.7/numpy 1.6.1。
-
@talonmies:同样的事情:两者都返回 False,正如预期的那样(Mac OS X 10.7,Mac Port 的 NumPy 1.6.1 for Python 2.7.2)。
-
@MartinisGroup:您的意思是“
float64类型的两个 ndarrays”吗?