logo

numpy.argsort() в Python

Модулът NumPy предоставя функция argsort(), връща индексите, които биха сортирали масив.

Модулът NumPy предоставя функция за извършване на индиректно сортиране по зададената ос с помощта на алгоритъма, зададен от ключовата дума. Тази функция връща масив от индекси със същата форма като 'a', което ще сортира масива.

Синтаксис

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

Параметри

Това са следните параметри във функцията numpy.argsort():

списък за създаване на java

a: array_like

Този параметър дефинира изходния масив, който искаме да сортираме.

ос: int или None (по избор)

Този параметър определя оста, по която се извършва сортирането. По подразбиране оста е -1. Ако зададем този параметър на None, се използва плоският масив.

вид: {'quicksort','mergesort','heapsort','stable'}(по избор)

Този параметър определя алгоритъма за сортиране. По подразбиране алгоритъмът е бързо сортиране . И двете сортиране чрез сливане и стабилен използват сортиране по време под завивките. Действителното изпълнение ще варира в зависимост от типа данни. The сортиране чрез сливане опцията се запазва за обратна съвместимост.

как да конвертирате char в низ

ред: 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.

Изход:

 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 

Изход:

gimp запишете като jpeg
 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.
  • Създадохме 2-D масив 'a' с помощта на функцията np.array().
  • Декларирахме индекси на променливи и присвоихме върнатата стойност на функцията np.argsort().
  • Предадохме 2-D масива 'a' и оста като 0.
  • След това използвахме функцията take_along_axis() и предадохме изходния масив, индекси и ос.
  • Тази функция е върнала сортирания 2-D масив.

В резултата е показан 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) 

Изход:

arraylist в java сортиране
 (array([0, 1, 1, 0], dtype=int64), array([0, 1, 0, 1], dtype=int64)) array([0, 2, 3, 5]) 

В горния код

  • Импортирахме numpy с псевдоним np.
  • Създадохме 2-D масив 'a' с помощта на функцията np.array().
  • Декларирахме променлива 'indices' и присвоихме върнатата стойност на функцията np.unravel_index().
  • Предадохме функцията np.argsort() и формата на масива 'a'.
  • Предадохме 2-D масива „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'),>