numpy.nonzero()função é usada para calcular os índices dos elementos que não são zero.

Ele retorna uma tupla de matrizes, uma para cada dimensão de arr, contendo os índices dos elementos diferentes de zero nessa dimensão.
Os valores diferentes de zero correspondentes na matriz podem ser obtidos com arr[nonzero(arr)] . Para agrupar os índices por elemento, em vez de dimensão, podemos usar transpose(nonzero(arr)).

Sintaxe: numpy.nonzero (arr)

Parâmetros:
arr: [array_like] Matriz de entrada.

Retorno: [tuple_of_arrays] Índices de elementos que não são zero.



Código # 1: Funcionando

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)  

Resultado :

Matriz de entrada:
[[0 8 0]
[7 0 0]
[-5 0 1]]
Índices de elementos diferentes de zero: (matriz ([0, 1, 2, 2], dtype = int64), matriz ([1, 0, 0, 2], dtype = int64))

 
Código # 2:

out_arr = arr[geek.nonzero(arr)] 
  
print ("Output array of non-zero number: ", out_arr)  

Resultado :

Matriz de saída de número diferente de zero: [8 7 -5 1]

 
Código # 3:

out_ind = geek.transpose(geek.nonzero(arr)) 
  
print ("indices of non-zero number: \n", out_ind)  

Resultado :

índices de número diferente de zero:
 [[0 1]
 [1 0]
 [2 0]
 [2 2]]