Python 理解numpywhere函数
我一直试图理解numpy where函数,但没有取得任何进展。我可以理解一些简单的比较,比如where value>otherValue,但是这个例子,从文档中看并不是很清楚 我希望你能简单地解释一下。感谢您提供的任何帮助:Python 理解numpywhere函数,python,numpy,Python,Numpy,我一直试图理解numpy where函数,但没有取得任何进展。我可以理解一些简单的比较,比如where value>otherValue,但是这个例子,从文档中看并不是很清楚 我希望你能简单地解释一下。感谢您提供的任何帮助: >>> np.where([[True, False], [True, True]], ... [[1, 2], [3, 4]], ... [[9, 8], [7, 6]]) array([[1, 8],
>>> np.where([[True, False], [True, True]],
... [[1, 2], [3, 4]],
... [[9, 8], [7, 6]])
array([[1, 8],
[3, 4]])
where()
函数接受3个参数。条件,x
和y
。如中所述,如果同时指定了x
和y
,则输出数组包含条件为True
的x
元素和其他地方的y
元素
对于第一行,它从x
中选择1
,从y
中选择8
(因为为False),对于第二行,因为两者都为True,所以它从x
中选择它们
np.where([[True, False], [True, True]],
[[1, 2], [3, 4]],
[[9, 8], [7, 6]])
array([[1, 8],
[3, 4]])
我认为我们可以让事情变得更简单,把重点放在
np.where
而不是嵌套列表上
np.where([True, False, True, True],
[1, 2, 3, 4],
[9, 8, 7, 6])
Out[4]: array([1, 8, 3, 4])
我想你可以从这个简单的等价物中得到答案。简单地说,它只是从条件为True的第一个列表([1,2,3,4]
)和条件为False的第二个列表([9,8,7,6]
)中选择相应的元素
第一个条件为True,然后我们选择1(从对应位置的第一个列表中),第二个条件为False,我们选择8(从对应位置的第二个列表中),依此类推 单参数使用最为常见,与
np.nonzero
同义。这三个论点的情况几乎没有经常使用。不要觉得您必须充分理解它才能在自己的代码中使用。使用布尔掩码设置值还有其他方法。