Open In App

numpy.nonzero() in Python

Last Updated : 28 Nov, 2018
Improve
Improve
Like Article
Like
Save
Share
Report

numpy.nonzero()function is used to Compute the indices of the elements that are non-zero.

It returns a tuple of arrays, one for each dimension of arr, containing the indices of the non-zero elements in that dimension.
The corresponding non-zero values in the array can be obtained with arr[nonzero(arr)] . To group the indices by element, rather than dimension we can use transpose(nonzero(arr)).

Syntax : numpy.nonzero(arr)

Parameters :
arr : [array_like] Input array.

Return : [tuple_of_arrays] Indices of elements that are non-zero.

Code #1 : Working




# 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) 


Output :

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))

 
Code #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 :

Output array of non-zero number:  [ 8  7 -5  1]

 
Code #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) 


Output :

indices of non-zero number: 
 [[0 1]
 [1 0]
 [2 0]
 [2 2]]


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads