numpy.nanargmax() in Python

numpy.nanargmax(array, axis = None) : Returns indices of the max element of the array in a particular axis ignoring NaNs.
The results cannot be trusted if a slice contains only NaNs and Infs.
Parameters :

array : Input array to work on 
axis  : [int, optional]Along a specified axis like 0 or 1

Return :

Array of indices into the array with same shape as array.shape
 with the dimension along axis removed.

Code 1 :



filter_none

edit
close

play_arrow

link
brightness_4
code

# Python Program illustrating
# working of nanargmax()
  
import numpy as geek 
  
# Working on 1D array
array = [geek.nan, 4, 2, 3, 1]
print("INPUT ARRAY 1 : \n", array)
  
array2 = geek.array([[geek.nan, 4], [1, 3]])
  
# returning Indices of the max element
# as per the indices ingnoring NaN
print("\nIndices of max in array1 : ", geek.nanargmax(array))
  
# Working on 2D array
print("\nINPUT ARRAY 2 : \n", array2)
print("\nIndices of max in array2 : ", geek.nanargmax(array2))
  
print("\nIndices at axis 1 of array2 : ", geek.nanargmax(array2, axis = 1))

chevron_right


Output :

INPUT ARRAY 1 : 
 [nan, 4, 2, 3, 1]

Indices of max in array1 :  1

INPUT ARRAY 2 : 
 [[ nan   4.]
 [  1.   3.]]

Indices of max in array2 :  1

Indices at axis 1 of array2 :  [1 1]

Code 2 : Comparing working of argmax and nanargmax

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python Program illustarting
# working of nanargmax()
  
import numpy as geek 
  
# Working on 2D array
array = ( [[ 8, 13, 5, 0],
           [ 16, geek.nan, 5, 3],
           [geek.nan, 7, 15, 15],
           [3, 11, 4, 12]])
print("INPUT ARRAY : \n", array)
  
# returning Indices of the max element
# as per the indices 
  
'''   
   [[ 8 13  5  0]
   [ 16  2  5  3]
   [10  7 15 15]
   [ 3 11  4 12]]
     ^  ^  ^  ^
       
'''
  
print("\nIndices of max using argmax : ", geek.argmax(array, axis = 0))
print("\nIndices of max using nanargmax :  : ", geek.nanargmax(array, axis = 0))

chevron_right


Output :

INPUT ARRAY : 
 [[8, 13, 5, 0], [16, nan, 5, 3], [nan, 7, 15, 15], [3, 11, 4, 12]]

Indices of max using argmax :  [2 1 2 2]

Indices of max using nanargmax :  :  [1 0 2 2]

References :
https://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.nanargmax.html#numpy.nanargmax

Note :
These codes won’t run on online-ID. Please run them on your systems to explore the working.

This article is contributed by Mohit Gupta_OMG 😀. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



My Personal Notes arrow_drop_up