📜  Python中的numpy.nanargmax

📅  最后修改于: 2020-06-07 09:12:59             🧑  作者: Mango

numpy.nanargmax(array, axis = None) : 返回忽略NaN的特定轴中数组max元素的索引。如果切片仅包含NaN和Inf,则结果将不可信任。

参数:

array:要处理的输入数组
axis:[int,可选]沿指定的轴,如0或1

返回:

# Python程序说明nanargmax()的工作
  
import numpy as geek  
  
# 处理一维阵列 
array = [geek.nan, 4, 2, 3, 1] 
print("输入数组1 : \n", array) 
  
array2 = geek.array([[geek.nan, 4], [1, 3]]) 
  
# 根据忽略NaN的索引返回max元素的索引 
print("\n数组1中的最大值的索引 : ", geek.nanargmax(array)) 
  
# 处理二维阵列 
print("\n输入数组2 : \n", array2) 
print("\n数组2中的最大值的索引 : ", geek.nanargmax(array2)) 
  
print("\n轴1处的索引的array2 : ", geek.nanargmax(array2, axis = 1)) 

输出:

输入数组1:
 [nan,

4、2、3、1 ] 
数组1中的最大值的索引:1 

输入数组2:
 [[nan 4。] 
 [1。3.]] 
数组2中的最大值的索引:1 

轴1处的索引的array2:[1 1]

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

# nanargmax()的Python程序说明工作
  
import numpy as geek  
  
# 处理二维阵列 
array = ( [[ 8, 13, 5, 0], 
           [ 16, geek.nan, 5, 3], 
           [geek.nan, 7, 15, 15], 
           [3, 11, 4, 12]]) 
print("输入数组 : \n", array) 
  
# 根据索引返回最大元素的索引  
  
'''    
   [[ 8 13  5  0] 
   [ 16  2  5  3] 
   [10  7 15 15] 
   [ 3 11  4 12]] 
     ^  ^  ^  ^ 
       
'''
  
print("\n使用argmax的max的索引 : ", geek.argmax(array, axis = 0)) 
print("\n使用nanargmax的max的索引 :  : ", geek.nanargmax(array, axis = 0)) 

输出:

输入数组:
 [[ 8,13,5,0 ],[16,nan,

5,3 ],[nan,7,15,15 ],[ 3,11,4,12 ]] 
使用argmax的max的索引: [2 1 2 2] 

使用nanargmax的max的索引::[1 0 2 2]