我有一个数组,例如
a = [5,1,3,0,2]
我应用 where 函数:
np.where(a == 2)
输出是一个空数组
(array([], dtype=int64),)
我发现了同样的问题here https://stackoverflow.com/questions/9002749/where-function-in-python-returns-nothing,但就我而言,这确实没有任何意义,不是吗?
顺便提一句。我在 Mac 上使用 Python 2.7.10
您正在将列表传递给where()
函数不是 Numpy 数组。使用数组代替:
In [20]: a = np.array([5,1,3,0,2])
In [21]: np.where(a == 2)
Out[21]: (array([4]),)
另外正如评论中提到的,在这种情况下的值a == 2
is False
,这是传递给的值where
. If a
是一个 numpy 数组,那么值a == 2
是一个布尔值的 numpy 数组,并且where
函数会给你想要的结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)