Python numpy.nanargmax()

Python numpy.nanargmax()

Python numpy.nanargmax()函数返回数组中最大元素在特定axis上的下标,忽略NaNs。
如果一个切片只包含nan和info,则结果是不可信的。

语法:

numpy.nanargmax(array, axis = None) 

参数 :

array : 输入数组来工作。
axis : [int, optional]沿着一个指定的轴,如0或1。

返回 :

与array.shape相同形状的数组,去掉了沿轴线的维度,是数组的索引。

代码 1 :

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

输出 :

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]

代码2:比较argmax和nanargmax的工作

# Python Program illustrating
# 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))

输出 :

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]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程