Python numpy.nonzero()
numpy.nonzero()函数用于计算非零的元素的索引。
它返回一个数组的元组,Arr的每个维度都有一个,包含该维度的非零元素的索引。
数组中相应的非零值可以通过arr[nonzero(arr)] 获得。为了按照元素而不是维度来分组,我们可以使用transpose(non-zero(arr))。
语法 : numpy.nonzero(arr)
参数 :
arr :[array_like] 输入阵列。
返回 :[tuple_of_arrays] 非零的元素的索引。
**代码 #1 : **
# Python program explaining
# nonzero() function
import numpy as geek
arr = geek.array([[0, 8, 0], [7, 0, 0], [-5, 0, 1]])
print ("Input array : \n", arr)
out_tpl = geek.nonzero(arr)
print ("Indices of non zero elements : ", out_tpl)
输出 :
Input array :
[[ 0 8 0]
[ 7 0 0]
[-5 0 1]]
Indices of non zero elements : (array([0, 1, 2, 2], dtype=int64), array([1, 0, 0, 2], dtype=int64))
代码 #2 :
# Python program for getting
# The corresponding non-zero values:
out_arr = arr[geek.nonzero(arr)]
print ("Output array of non-zero number: ", out_arr)
输出 :
Output array of non-zero number: [ 8 7 -5 1]
代码 #3 :
# Python program for grouping the indices
# by element, rather than dimension
out_ind = geek.transpose(geek.nonzero(arr))
print ("indices of non-zero number: \n", out_ind)
输出 :
indices of non-zero number:
[[0 1]
[1 0]
[2 0]
[2 2]]