我有一个数组,例如
a = [5,1,3,0,2]
我应用where函数:
np.where(a == 2)
输出是一个空数组
(array([], dtype=int64),)
我发现了同样的问题here,但在我的情况下它真的没有任何意义或剂量吗?
顺便说一下。我在Mac上使用Python 2.7.10
答案 0 :(得分:3)
您将列表传递给where()
函数而不是Numpy数组。改为使用数组:
In [20]: a = np.array([5,1,3,0,2])
In [21]: np.where(a == 2)
Out[21]: (array([4]),)
同样如评论中所述,在这种情况下,a == 2
的值为False
,这是传递给where
的值。如果a
是一个numpy数组,则a == 2
的值是一个庞大的bool数组,而where
函数将为您提供所需的结果。