numpy.ma.argsort#

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

Return an ndarray of indices that sort the array along the specified axis. Masked values are filled beforehand to fill_value.

Parameters:
axisint, optional

Axis along which to sort. If None, the default, the flattened array is used.

kind{‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’}, optional

The sorting algorithm used.

orderlist, optional

When a is an array with fields defined, this argument specifies which fields to compare first, second, etc. Not all fields need be specified.

endwith{True, False}, optional

Whether missing values (if any) should be treated as the largest values (True) or the smallest values (False) When the array contains unmasked values at the same extremes of the datatype, the ordering of these values and the masked values is undefined.

fill_valuescalar or None, optional

Value used internally for the masked values. If fill_value is not None, it supersedes endwith.

stablebool, optional

Only for compatibility with np.argsort. Ignored.

Returns:
index_arrayndarray, int

Array of indices that sort a along the specified axis. In other words, a[index_array] yields a sorted a.

See also

ma.MaskedArray.sort

Describes sorting algorithms used.

lexsort

Indirect stable sort with multiple keys.

numpy.ndarray.sort

Inplace sort.

Notes

See sort for notes on the different sorting algorithms.

Examples

>>> 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])