相关疑难解决方法(0)

无法理解numpy argpartition输出

我试图从numpy使用arpgpartition,但似乎出现了问题,我似乎无法弄明白.这是发生了什么:

这些是排序数组的前5个元素 norms

np.sort(norms)[:5]
array([ 53.64759445,  54.91434479,  60.11617279,  64.09630585,  64.75318909], dtype=float32)
Run Code Online (Sandbox Code Playgroud)

但是当我使用时 indices_sorted = np.argpartition(norms, 5)[:5]

norms[indices_sorted]
array([ 60.11617279,  64.09630585,  53.64759445,  54.91434479,  64.75318909], dtype=float32)
Run Code Online (Sandbox Code Playgroud)

当我认为我应该得到与排序数组相同的结果?

当我使用3作为参数时,它工作得很好 indices_sorted = np.argpartition(norms, 3)[:3]

norms[indices_sorted]
array([ 53.64759445,  54.91434479,  60.11617279], dtype=float32)
Run Code Online (Sandbox Code Playgroud)

这对我来说没有多大意义,希望有人可以提供一些见解?

编辑:将这个问题改为argpartition是否保留k个分区元素的顺序更有意义.

python arrays numpy

15
推荐指数
3
解决办法
1万
查看次数

标签 统计

arrays ×1

numpy ×1

python ×1