logo

numpy.argsort() у Python

Модуль NumPy надає функцію argsort(), яка повертає індекси, які сортують масив.

Модуль NumPy надає функцію для виконання непрямого сортування разом із заданою віссю за допомогою алгоритму, визначеного ключовим словом. Ця функція повертає масив індексів такої самої форми, як 'a', який сортує масив.

Синтаксис

 numpy.argsort(a, axis=-1, kind=None, order=None) 

Параметри

Це такі параметри у функції numpy.argsort():

приклад коду java

a: array_like

Цей параметр визначає вихідний масив, який ми хочемо відсортувати.

axis: int або None (необов’язково)

Цей параметр визначає вісь, по якій виконується сортування. За замовчуванням вісь -1. Якщо для цього параметра встановлено значення None, використовується зведений масив.

kind: {'quicksort','mergesort','heapsort','stable'}(необов'язково)

Цей параметр визначає алгоритм сортування. За замовчуванням алгоритм є швидке сортування . Обидва сортування злиттям і стабільний використовують сортування часу під ковдрою. Фактична реалізація залежить від типу даних. The сортування злиттям опція зберігається для зворотної сумісності.

угода про імена java

порядок: str або список str (необов'язково)

Якщо «a» — це масив із визначеними полями, цей аргумент визначає, які поля порівнювати першими, другими тощо. Окреме поле можна вказати як рядок, і не потрібно вказувати всі поля. Але невизначені поля все одно використовуватимуться в тому порядку, в якому вони з’являються в dtype, щоб розірвати зв’язки.

Повертає: index_array: ndarray, int

Ця функція повертає масив індексів, які сортують 'a' разом із зазначеною віссю. Якщо 'a' є 1-D, a[index_array] дає відсортований 'a'. Більш загально, np.take_along_axis(arr1, index_array, axis=axis) завжди дає відсортоване 'a', незалежно від розмірності.

Приклад 1: np.argsort()

 import numpy as np a=np.array([456,11,63]) a b=np.argsort(a) b 

У наведеному вище коді

  • Ми імпортували numpy з псевдонімом np.
  • Ми створили масив 'a' за допомогою функції np.array().
  • Ми оголосили змінну 'b' і присвоїли значення, яке повертає функція np.argsort().
  • Ми передали масив 'a' у функцію.
  • Нарешті, ми спробували надрукувати значення b.

У вихідних даних було показано ndarray, який містить індекси (вказує на позицію елемента для відсортованого масиву) і dtype.

Очистити кеш npm

Вихід:

 array([456, 11, 63]) array([1, 2, 0], dtype=int64) 

Приклад 2: для 2-D масиву (сортування вздовж першої осі (вниз))

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=0) indices 

Вихід:

 array([[0, 1], [1, 0]], dtype=int64) 

Приклад 3: для 2-D масиву (альтернатива осі=0)

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=0) indices np.take_along_axis(a, indices, axis=0) 

У наведеному вище коді

  • Ми імпортували numpy з псевдонімом np.
  • Ми створили двовимірний масив 'a' за допомогою функції np.array().
  • Ми оголосили індекси змінних і присвоїли значення, що повертається функцією np.argsort().
  • Ми передали 2-D масив 'a' і вісь як 0.
  • Далі ми використали функцію take_along_axis() і передали вихідний масив, індекси та вісь.
  • Ця функція повернула відсортований 2-D масив.

У вихідних даних було показано двовимірний масив із відсортованими елементами.

Вихід:

 array([[0, 2], [3, 5]]) 

Приклад 4: для 2-D масиву (сортування вздовж останньої осі (поперек))

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=1) indices 

Вихід:

 array([[0, 1], [1, 0]], dtype=int64) 

Приклад 5: для 2-D масиву (альтернатива осі=1)

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=1) indices np.take_along_axis(a, indices, axis=1) 

Вихід:

 array([[0, 2], [3, 5]]) 

Приклад 6: для масиву N-D

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.unravel_index(np.argsort(a, axis=None), a.shape) indices a[indices] # same as np.sort(a, axis=None) 

Вихід:

дата javascript
 (array([0, 1, 1, 0], dtype=int64), array([0, 1, 0, 1], dtype=int64)) array([0, 2, 3, 5]) 

У наведеному вище коді

  • Ми імпортували numpy з псевдонімом np.
  • Ми створили двовимірний масив 'a' за допомогою функції np.array().
  • Ми оголосили змінну 'indices' і присвоїли повернуте значення функції np.unravel_index().
  • Ми передали функцію np.argsort() і форму масиву 'a'.
  • Ми передали двовимірний масив «a» та вісь як 1 у функції argsort().
  • Далі ми спробували надрукувати значення індексів та a[індекси].

У вихідних даних було показано N-D масив із відсортованими елементами.

Приклад 7: Сортування за допомогою ключів

 import numpy as np a= np.array([(0, 5), (3, 2)], dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')]) a b="np.argsort(a," order="(&apos;x&apos;,&apos;y&apos;))" c="np.argsort(a," < pre> <p> <strong>Output:</strong> </p> <pre> array([(0, 5), (3, 2)], dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')]) array([0, 1], dtype="int64)" array([1, 0], < pre> <p> <strong>In the above code</strong> </p> <ul> <li>We have imported numpy with alias name np.</li> <li>We have created a 2-D array &apos;a&apos; using np.array() function with dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')].< li> <li>We have declared the variables &apos;b&apos; and &apos;c&apos; and assigned the returned value of np.argsort() function.</li> <li>We have passed the array &apos;a&apos; and order as an argument in the function.</li> <li>Lastly, we tried to print the value of &apos;b&apos; and &apos;c&apos;.</li> </i4'),></li></ul> <p>In the output, a sorted array has been shown with dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')]< p> <hr></i4'),></p></i4'),></pre></i4'),>