Я пытаюсь использовать arpgpartition из numpy, но кажется, что что-то пошло не так, и я не могу понять это. Вот что происходит:
Это первые 5 элементов отсортированного массива norms
np.sort(norms)[:5]
array([ 53.64759445, 54.91434479, 60.11617279, 64.09630585, 64.75318909], dtype=float32)
Но когда я использую indices_sorted = np.argpartition(norms, 5)[:5]
norms[indices_sorted]
array([ 60.11617279, 64.09630585, 53.64759445, 54.91434479, 64.75318909], dtype=float32)
Когда я думаю, что должен получить тот же результат, что и отсортированный массив?
Он отлично работает, когда я использую 3 как параметр indices_sorted = np.argpartition(norms, 3)[:3]
norms[indices_sorted]
array([ 53.64759445, 54.91434479, 60.11617279], dtype=float32)
Это не имеет большого смысла для меня, надеясь, что кто-то может предложить некоторое понимание?
РЕДАКТИРОВАТЬ: перефразируйте этот вопрос, как имеет смысл аргумент, сохраняющий порядок k секционированных элементов.