numpy.nanargmin () in Python



numpy.nanargmin (array, axis = None): Returns the indices of the min element of the array on the specified axis, ignoring NaN. 
Results cannot be trusted if the slice contains only NaN 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:

# Python program illustrating
# nanargmin () work

 

import numpy as geek 

 
# Working with 1D array

array = [geek.nan, 4 , 2 , 3 , 1 ]

print ( "INPUT ARRAY 1:" , array)

 

array2 = geek.array ([[geek.nan, 4 ], [ 1 , 3 ]])

 
# returns the indexes of the min element
# for metrics that include NaN

print ( "Indices of min in array1:" , geek.nanargmin (array ))

 
# Working with 2D array

print ( "INPUT ARRAY 2:" , array2)

print ( "Indices of min in array2:" , geek.nanargmin (array2))

 

print ( "Indices at axis 1 of array2:" , geek.nanargmin (array2, axis = 1 ) )

Output:

 INPUT ARRAY 1: [nan, 4, 2, 3, 1] Indices of min in array1: 4 INPUT ARRAY 2: [[nan 4.] [1. 3.]] Indices of min in array2: 2 Indices at axis 1 of array2: [1 0] 

Code 2: Comparison of argmin and nanargmin operation

# Python program illustrating
# nanargmin () work

 

import numpy as geek 

 
# Working with 2D array

array = ([[ 8 , 13 , 5 , 0 ],

[geek.nan, geek. nan, 5 , 3 ],

  [ 10 , 7 , 15 , 15 ],

[ 3 , 11 , 4 , 12 ]])

print ( "INPUT ARRAY:" , array)

 
# returns min element indices
# by metrics

 
"" "

  [[8 13 5 0]

[0 2 5 3]

  [10 7 15 15]

[3 11 4 12]]

^ ^ ^ ^

0 2 4 0 - element

  1 1 3 0 - indicators

"" "

  

print ( "Indices of min using argmin:" , geek.argmin (array, axis = 0 ))

print ( "Indices of min using nanargmin:: " , geek.nanargmin (a rray, axis = 0 ))

Output:

 INPUT ARRAY: [[8 13 5 0] [0 2 5 3] [10 7 15 15] [3 11 4 12]] Indices of min element: [1 1 3 0] 

Links:
https://docs.scipy.org/doc/numpy -dev / reference / generated / numpy.nanargmin.html

Notes:
These codes will not work for online IDs. Please run them on your systems to see how they work

This article is provided by Mohit Gupta_OMG