📅  最后修改于: 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]