Python Numpy MaskedArray.argmax()函数
在许多情况下,数据集可能是不完整的,或因存在无效数据而受到污染。例如,一个传感器可能未能记录一个数据,或者记录了一个无效的值。numpy.ma模块通过引入掩码数组,为解决这个问题提供了一个方便的方法。掩码数组是可能存在缺失或无效项的数组。
numpy.MaskedArray.argmax()函数返回沿给定轴的最大值的索引数组。被屏蔽的值被视为具有fill_value的值。
语法: numpy.MaskedArray.argmax(axis=None, fill_value=None, out=None)
参数:
axis : [None, integer] 如果没有,则索引进入扁平化数组,否则沿指定轴。
fill_value : [ var, optional] 用来填充被遮蔽的数值。
out : [ndarray, optional] 一个储存结果的位置。
-> 如果提供,它必须有一个输入广播到的形状。
-> 如果没有提供或没有,将返回一个新分配的数组。
返回 : [index_array ]返回一个新的integer_array,除非指定out,在这种情况下,返回一个对out的引用。
代码#1:
# Python program explaining
# numpy.MaskedArray.argmax() method
# importing numpy as geek
# and numpy.ma module as ma
import numpy as geek
import numpy.ma as ma
# creating input array
in_arr = geek.array([1, 2, 3, -1, 5])
print ("Input array : ", in_arr)
# Now we are creating a masked array.
# by making third entry as invalid.
mask_arr = ma.masked_array(in_arr, mask =[0, 0, 1, 0, 0])
print ("Masked array : ", mask_arr)
# applying MaskedArray.argmax methods to mask array
out_arr = mask_arr.argmax()
print ("Index of max element in masked array : ", out_arr)
输出:
Input array : [ 1 2 3 -1 5]
Masked array : [1 2 -- -1 5]
Index of max element in masked array : 4
代码#2:
# Python program explaining
# numpy.MaskedArray.argmax() method
# importing numpy as geek
# and numpy.ma module as ma
import numpy as geek
import numpy.ma as ma
# creating input array
in_arr = geek.array([10, 20, 30, -10, 50])
print ("Input array : ", in_arr)
# Now we are creating a masked array
# by making first third entry as invalid.
mask_arr = ma.masked_array(in_arr, mask =[1, 0, 1, 0, 0])
print ("Masked array : ", mask_arr)
# applying MaskedArray.argmax methods to mask array
# and filling the masked location by 100
out_arr = mask_arr.argmax(fill_value = 100)
print ("Index of max element in masked array : ", out_arr)
输出:
Input array : [ 10 20 30 -10 50]
Masked array : [-- 20 -- -10 50]
Index of max element in masked array : 0