numpy.ma.argsort#

ma.argsort(a, axis=<no value>, kind=None, order=None, endwith=True, fill_value=None, *, stable=None)[源代码]#

返回一个索引的ndarray,这些索引沿着指定的轴对数组进行排序.掩码值在之前被填充为 fill_value.

参数:
axisint, 可选

要排序的轴.如果为 None,默认情况下,使用展平的数组.

在 1.13.0 版本发生变更: 之前,默认值被记录为 -1,但这是一个错误.在未来的某个日期,默认值将更改为 -1,这是最初的目的.在此之前,当 arr.ndim > 1 时,应该明确给出轴,以避免 FutureWarning.

kind{‘快速排序’, ‘归并排序’, ‘堆排序’, ‘稳定’}, 可选

使用的排序算法.

order列表,可选

a 是一个定义了字段数组时,此参数指定首先比较哪些字段,其次比较哪些字段等.不需要指定所有字段.

endwith{True, False}, 可选

是否应将缺失值(如果有)视为最大值(True)或最小值(False).当数组在数据类型的相同极端包含未掩码值时,这些值和掩码值的顺序未定义.

fill_value标量或无,可选

用于屏蔽值的内部值.如果 fill_value 不是 None,它将取代 endwith.

stablebool, 可选

仅为了与 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])