Я удивлен, что этот конкретный вопрос не задавался раньше, но я действительно не нашел его на SO или документации np.sort
.
Скажем, у меня есть случайный массив numpy, содержащий целые числа, например:
> temp = np.random.randint(1,10, 10)
> temp
array([2, 4, 7, 4, 2, 2, 7, 6, 4, 4])
Если я его сортирую, по умолчанию получаю по возрастанию:
> np.sort(temp)
array([2, 2, 2, 4, 4, 4, 4, 6, 7, 7])
но я хочу, чтобы решение сортировалось в порядке убывания.
Теперь я знаю, что всегда могу:
reverse_order = np.sort(temp)[::-1]
но является ли это последним оператором эффективным? Разве он не создает копию в порядке возрастания, а затем отменяет эту копию, чтобы получить результат в обратном порядке? Если это действительно так, есть ли эффективная альтернатива? Это не похоже, что np.sort
принимает параметры для изменения знака сравнений в операции сортировки, чтобы получить вещи в обратном порядке.