dask.array.argtopk(a, k, axis=- 1, split_every=None)[source]

Extract the indices of the k largest elements from a on the given axis, and return them sorted from largest to smallest. If k is negative, extract the indices of the -k smallest elements instead, and return them sorted from smallest to largest.

This performs best when k is much smaller than the chunk size. All results will be returned in a single chunk along the given axis.

x: Array

Data being sorted

k: int
axis: int, optional
split_every: int >=2, optional

See topk(). The performance considerations for topk also apply here.

Selection of np.intp indices of x with size abs(k) along the given axis.


>>> import dask.array as da
>>> x = np.array([5, 1, 3, 6])
>>> d = da.from_array(x, chunks=2)
>>> d.argtopk(2).compute()
array([3, 0])
>>> d.argtopk(-2).compute()
array([1, 2])