dask.array.topk
dask.array.topk¶
- dask.array.topk(a, k, axis=- 1, split_every=None)[源代码]¶
从给定轴上的数组中提取 k 个最大的元素,并按从大到小的顺序返回它们。如果 k 为负数,则提取 -k 个最小的元素,并按从小到大的顺序返回它们。
当
k
远小于块大小时,此操作效果最佳。所有结果将沿给定轴以单个块的形式返回。- 参数
- x: 数组
数据正在排序
- k: int
- 轴: int, 可选
- split_every: int >=2, 可选
参见
reduce()
。当 k 与块大小处于同一数量级或更大时,此参数变得非常重要,因为它防止一次性将整个或输入数组的大部分内容加载到内存中,这在分布式运行时也会对网络传输产生负面影响。
- 返回
- 沿给定轴选择大小为 abs(k) 的 x。
示例
>>> import dask.array as da >>> x = np.array([5, 1, 3, 6]) >>> d = da.from_array(x, chunks=2) >>> d.topk(2).compute() array([6, 5]) >>> d.topk(-2).compute() array([1, 3])