📅  最后修改于: 2023-12-03 15:03:18.578000             🧑  作者: Mango
Numpy MaskedArray.argsort()函数用于将一个掩码数组按某个轴进行排序。掩码数组是一个具有缺失值的数组。函数返回每个轴上各元素的排序索引。
numpy.ma.argsort(a, axis=None, kind='quicksort', order=None, endwith=False)
返回排序后的索引数组或者只是按照一定的顺序排列后的未被遮盖的数组状态(即不包含缺失值的数组)。
import numpy.ma as ma
# 定义一个掩码数组
a = ma.array([0, 1, -999, 3, 4], mask=[0, 0, 1, 0, 0])
# 输出掩码数组排序后的索引
print(a.argsort())
执行上述代码,会输出以下结果:
[0 1 3 4 2]
在该例子中,掩码数组 a
包含了缺失值 -999
,其对应的索引值为 2
。输出结果中 2
对应的是数组中包含的缺失值 NaN
,即在掩码数组中的缺失值会被排到最后。
由于该函数返回的是每个轴上各元素的排序索引,因此输出的结果也是一个数组,其形状与原始数组形状相同。如果axis参数不为None,则应按照axis在输入数组的维数进行调用编号。 另外,如果a是非MaskedArray,则调用默认算法(quick sort)以切片方式调用Python的标准argsort函数。