当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Python NumPy argwhere方法用法及代码示例

NumPy 的 argwhere(~) 方法返回非零值的索引。

参数

1. a | array_like

输入数组。

返回值

非零值索引的 NumPy 数组。如果输入数组是一维或二维,则返回的数组将为二维。

例子

基本用法

x = np.array([1,2,3])
np.argwhere(x)



array([[0],
       [1],
       [2]])

此处,由于 x 中的所有值均非零,因此返回所有索引。请注意,返回的数组是二维的。

使用面罩

在 NumPy 中,False 值相当于 0,而 True 值相当于 1。这意味着 argwhere(~) 可用于掩码。

假设我们想要确定大于 2 的值的索引。我们可以这样做:

x = np.array([1,2,3,4])
mask = x > 2



array([False, False,  True,  True])

使用面膜可以得到:

np.argwhere(mask)



array([[2],
       [3]])

二维数组

假设我们想要确定 2D Numpy 数组中大于 2 的值的索引

x = np.array([[1,2],[3,4],[5,6]])
mask = x > 2



array([[False, False],
       [ True,  True],
       [ True,  True]])

使用面膜可以得到:

np.argwhere(mask)



array([[1, 0],
       [1, 1],
       [2, 0],
       [2, 1]])

对此的解释方法如下:

[1,0] -> row 1, column 0 is non-zero (i.e. greater than 2)
[1,1] -> row 1, column 1 is non-zero
[2,0] -> row 2, column 0 is non-zero
[2,1] -> row 2, column 1 is non-zero

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 NumPy | argwhere method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。