📜  Python中的 numpy.nanargmin()

📅  最后修改于: 2022-05-13 01:54:27.380000             🧑  作者: Mango

Python中的 numpy.nanargmin()

numpy.nanargmin()函数返回忽略 NaN 的特定轴中数组的最小元素的索引。
如果切片仅包含 NaN 和 Inf,则结果不可信。

句法:

numpy.nanargmin(array, axis = None)

参数 :

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

返回 :

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

代码 1:

Python
# Python Program illustrating
# working of nanargmin()
 
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 min element
# as per the indices ingnoring NaN
print("\nIndices of min in array1 : ",
      geek.nanargmin(array))
 
# Working on 2D array
print("\nINPUT ARRAY 2 : \n", array2)
print("\nIndices of min in array2 : ",
      geek.nanargmin(array2))
 
print("\nIndices at axis 1 of array2 : ",
      geek.nanargmin(array2, axis = 1))


Python
# Python Program illustrating
# working of nanargmin()
 
import numpy as geek
 
# Working on 2D array
array = ( [[ 8, 13, 5, 0],
           [ geek.nan, geek.nan, 5, 3],
           [10, 7, 15, 15],
           [3, 11, 4, 12]])
print("INPUT ARRAY : \n", array)
 
# returning Indices of the min element
# as per the indices
 
'''  
   [[ 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  - indices
'''
 
print("\nIndices of min using argmin : ",
      geek.argmin(array, axis = 0))
print("\nIndices of min using nanargmin :  : ",
      geek.nanargmin(array, axis = 0))


输出 :

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]

代码 2:比较 argmin 和 nanargmin 的工作

Python

# Python Program illustrating
# working of nanargmin()
 
import numpy as geek
 
# Working on 2D array
array = ( [[ 8, 13, 5, 0],
           [ geek.nan, geek.nan, 5, 3],
           [10, 7, 15, 15],
           [3, 11, 4, 12]])
print("INPUT ARRAY : \n", array)
 
# returning Indices of the min element
# as per the indices
 
'''  
   [[ 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  - indices
'''
 
print("\nIndices of min using argmin : ",
      geek.argmin(array, axis = 0))
print("\nIndices of min using nanargmin :  : ",
      geek.nanargmin(array, axis = 0))

输出 :

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]