Модулът 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=[('x', ' <i4'), ('y', ' <i4')]) a b="np.argsort(a," order="('x','y'))" c="np.argsort(a," < pre> <p> <strong>Output:</strong> </p> <pre> array([(0, 5), (3, 2)], dtype=[('x', ' <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 'a' using np.array() function with dtype=[('x', ' <i4'), ('y', ' <i4')].< li> <li>We have declared the variables 'b' and 'c' and assigned the returned value of np.argsort() function.</li> <li>We have passed the array 'a' and order as an argument in the function.</li> <li>Lastly, we tried to print the value of 'b' and 'c'.</li> </i4'),></li></ul> <p>In the output, a sorted array has been shown with dtype=[('x', ' <i4'), ('y', ' <i4')]< p> <hr></i4'),></p></i4'),></pre></i4'),>