如何理解np.argwhere函数?

时间:2018-09-19 07:24:59

标签: numpy

Signature: np.argwhere(a)
Docstring:
Find the indices of array elements that are non-zero, grouped by element.

示例

>>> x = np.arange(6).reshape(2,3)
>>> x
array([[0, 1, 2],
       [3, 4, 5]])
>>> np.argwhere(x>1)
array([[0, 2],
       [1, 0],
       [1, 1],
       [1, 2]])

“非零”和“按元素分组”是什么意思?什么是“ x> 1”?

2 个答案:

答案 0 :(得分:2)

在每行中,第一个条目是行索引,第二个条目是x满足条件的条目的列索引。

例如: 2大于1 因此argwhere的第一行为您提供[0, 2] 指向x中2的位置。

答案 1 :(得分:0)

查找非零元素(true)的数组元素的索引(位置),按元素分组(每个索引是其自己的行)< / em>。

基本上,如果您传递一个布尔数组,则会在该数组为true的位置找到索引,但会对其进行转置以使CREATE EXTENSION形式的索引变为[[x1, x2, ...], [y1, y2, ...]]形式。

[[x1, y1], [x2, y2], ...]是一个布尔数组,它在x > 1处为True,在x > 1处为False。在您的示例中,看起来很l

x <= 1