nonzero 函数主要用来返回特定条件或者是非0的矩阵索引位置,为一个二维数组,即行列的组合。
>>> x = np.eye(3)
>>> x
array(
[[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]])
>>> np.nonzero(x)
(array([0, 1, 2]), array([0, 1, 2]))
这里
[0, 1, 2]
[0, 1, 2]
-> [0, 0] [1,1] [2,2] 便是x矩阵中非0元素的位置索引
也可以用来比较 返回true false 中 true的索引
>>> a = np.array([[1,2,3],[4,5,6],[7,8,9]])
>>> a > 3
array([
[False, False, False],
[ True, True, True],
[ True, True, True]], dtype=bool)
>>> np.nonzero(a > 3)
(array([1, 1, 1, 2, 2, 2]),
array([0, 1, 2, 0, 1, 2]))