鉴于以下2d numpy数组:
>>> a = np.arange(4,10).reshape(2,3)
array([[4, 5, 6],
[7, 8, 9]])
我们可以使用np.where()
来获取满足特定条件的条目索引。
>>> np.where(a == [4, 5, 6])
(array([0, 0, 0]), array([0, 1, 2]))
到目前为止一切顺利:要返回的第一个数组是整数4
,5
,6
出现在a
中的行idx&#39},第二个数组是4,5,6出现在a
中的字母。
>>> np.where(a == [4,5,8])
(array([0, 0]), array([0, 1]))
为什么整数8
没有被选中?
>>> np.where(a == [6,8,9])
(array([1, 1]), array([1, 2]))
为什么整数6
没有被选中?
>>> np.where(a == [4,8,9])
(array([0, 1, 1]), array([0, 1, 2]))
为什么整数4
被拾取?
答案 0 :(得分:0)
感谢jonrsharpe在我的问题下面的评论,我能够理解发生了什么。
>>> > a = np.arange(5,10)
>>> a == [4,8,9]
array([[True, False, False],
[False, True, True]], dtype=bool)
获取[4,8,9]
并为a
的每个3数组条目逐元素地评估它们是否相等。
>>> np.where(a == [4,8,9])
(array([0, 1, 1]), array([0, 1, 2]))
给出True
出现的行和列索引。