numpy.ma.MaskedArray.argsort#

方法

ma.MaskedArray.argsort(axis=<no value>, kind=None, order=None, endwith=True, fill_value=None, *, stable=False)[source]#

返回一个 ndarray,其中包含沿指定轴对数组进行排序的索引。掩码值事先填充为 fill_value

参数:
axisint,可选

要排序的轴。如果为 None(默认值),则使用扁平化的数组。

版本 1.13.0 中已更改: 以前,文档记录的默认值为 -1,但这有误。在未来的某个时间点,默认值将更改为 -1,如最初打算的那样。在此之前,当 arr.ndim > 1 时,应明确给出轴,以避免出现 FutureWarning。

kind{'quicksort','mergesort','heapsort','stable'},可选

使用的排序算法。

order列表,可选

a 是一个定义了字段的数组时,此参数指定首先比较哪些字段,其次比较哪些字段,依此类推。不必指定所有字段。

endwith{True,False},可选

任何缺失值(如果有)是否应被视为最大值 (True) 或最小值 (False)。当数组包含数据类型相同极端位置的未掩码值时,这些值和掩码值的顺序是不确定的。

fill_value标量或 None,可选

内部用于掩码值的数值。如果 fill_value 不为 None,则它会取代 endwith

stable布尔值,可选

仅为了与 np.argsort 兼容。忽略。

返回:
index_arrayndarray,int

沿指定轴对 a 进行排序的索引数组。换句话说,a[index_array] 会产生一个已排序的 a

另请参阅

ma.MaskedArray.sort

描述了使用的排序算法。

lexsort

具有多个键的间接稳定排序。

numpy.ndarray.sort

就地排序。

备注

有关不同排序算法的说明,请参阅 sort

示例

>>> import numpy as np
>>> a = np.ma.array([3,2,1], mask=[False, False, True])
>>> a
masked_array(data=[3, 2, --],
             mask=[False, False,  True],
       fill_value=999999)
>>> a.argsort()
array([1, 0, 2])