Numpy argsort: Efficient Array Sorting in Python
Numpy argsort - это функция модуля numpy, которая возвращает индексы элементов массива в отсортированном порядке. Она позволяет получить индексы элементов массива в порядке возрастания или убывания значений.
Пример использования функции argsort:
python
import numpy as np
arr = np.array([4, 6, 2, 1, 7])
sorted_indices = np.argsort(arr)
print(sorted_indices) # Выводит: [3 2 0 1 4]
В данном примере мы создали одномерный массив arr. Затем, используя функцию argsort, получили индексы элементов arr в отсортированном порядке. Результат сохраняем в переменную sorted_indices и выводим ее значение. В данном случае получаем массив [3 2 0 1 4], что означает, что наименьший элемент массива arr имеет индекс 3, следующий - индекс 2 и т.д.
Можно использовать параметр `kind`, чтобы изменить порядок сортировки. По умолчанию `kind='quicksort'`, но также доступны `kind='mergesort'` и `kind='heapsort'`. Например:
python
import numpy as np
arr = np.array([4, 6, 2, 1, 7])
sorted_indices = np.argsort(arr, kind='mergesort')
print(sorted_indices) # Выводит: [3 2 0 1 4]
Обратное сортирование также возможно. Для этого можно использовать параметр `reverse=True`. Например:
python
import numpy as np
arr = np.array([4, 6, 2, 1, 7])
sorted_indices = np.argsort(arr, kind='quicksort', reverse=True)
print(sorted_indices) # Выводит: [4 1 0 2 3]
В данном примере мы получили индексы элементов массива arr в отсортированном порядке по убыванию.