我试图从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个分区元素的顺序更有意义.