Modulul NumPy oferă o funcție argsort(), returnează indicii care ar sorta o matrice.
Modulul NumPy oferă o funcție pentru efectuarea unei sortări indirecte împreună cu axa dată cu ajutorul algoritmului specificat de cuvântul cheie. Această funcție returnează o matrice de indici de aceeași formă ca „a”, care ar sorta matricea.
Sintaxă
numpy.argsort(a, axis=-1, kind=None, order=None)
Parametrii
Aceștia sunt următorii parametri în funcția numpy.argsort():
trimestru în afaceri
a: array_like
Acest parametru definește matricea sursă pe care dorim să o sortăm.
axa: int sau None (opțional)
Acest parametru definește axa de-a lungul căreia se realizează sortarea. Implicit, axa este -1. Dacă setăm acest parametru la None, se folosește matricea aplatizată.
explicați independența datelor
fel: {'quicksort','mergesort','heapsort','stable'} (opțional)
Acest parametru definește algoritmul de sortare. În mod implicit, algoritmul este sortare rapida . Ambii mergesort și grajd folosesc sortarea în timp sub copertă. Implementarea reală va varia în funcție de tipul de date. The mergesort opțiunea este reținută pentru compatibilitate inversă.
ordine: str sau lista de str (opțional)
Dacă „a” este o matrice cu câmpuri definite, acest argument specifică câmpurile de comparat primul, al doilea etc. Câmpul unic poate fi specificat ca șir și nu trebuie specificate toate câmpurile. Dar câmpurile nespecificate vor folosi în continuare, în ordinea în care apar în dtype, pentru a rupe legăturile.
Returnează: index_array: ndarray, int
Această funcție returnează o matrice de indici care sortează „a” împreună cu axa specificată. Dacă „a” este 1-D, a[index_array] dă un „a” sortat. Mai general, np.take_along_axis(arr1, index_array, axis=axis) produce întotdeauna „a” sortat, indiferent de dimensionalitate.
Exemplul 1: np.argsort()
import numpy as np a=np.array([456,11,63]) a b=np.argsort(a) b
În codul de mai sus
este grasime proteica
- Am importat numpy cu numele de alias np.
- Am creat o matrice „a” folosind funcția np.array().
- Am declarat variabila „b” și am atribuit valoarea returnată a funcției np.argsort().
- Am trecut matricea „a” în funcție.
- În cele din urmă, am încercat să tipărim valoarea lui b.
În ieșire, a fost arătat un ndarray care conține indicii (indicați poziția elementului pentru tabloul sortat) și dtype.
Ieșire:
array([456, 11, 63]) array([1, 2, 0], dtype=int64)
Exemplul 2: pentru matrice 2-D( sortează de-a lungul primei axe (în jos))
import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=0) indices
Ieșire:
array([[0, 1], [1, 0]], dtype=int64)
Exemplul 3: pentru matrice 2-D (alternativă a axei=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)
În codul de mai sus
- Am importat numpy cu numele de alias np.
- Am creat o matrice 2-D „a” folosind funcția np.array().
- Am declarat indici variabili și am atribuit valoarea returnată a funcției np.argsort().
- Am trecut matricea 2-D „a” și axa ca 0.
- Apoi, am folosit funcția take_along_axis() și am trecut matricea sursă, indici și axa.
- Această funcție a returnat matricea 2-D sortată.
În rezultat, a fost afișată o matrice 2-D cu elemente sortate.
Ieșire:
array([[0, 2], [3, 5]])
Exemplul 4: pentru o matrice 2-D( sortează de-a lungul ultimei axe (în jurul))
import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=1) indices
Ieșire:
blocați reclamele youtube pe Android
array([[0, 1], [1, 0]], dtype=int64)
Exemplul 5: pentru matrice 2-D (alternativă a axei=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)
Ieșire:
array([[0, 2], [3, 5]])
Exemplul 6: Pentru matrice 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)
Ieșire:
(array([0, 1, 1, 0], dtype=int64), array([0, 1, 0, 1], dtype=int64)) array([0, 2, 3, 5])
În codul de mai sus
- Am importat numpy cu numele de alias np.
- Am creat o matrice 2-D „a” folosind funcția np.array().
- Am declarat o variabilă „indices” și am atribuit valoarea returnată a funcției np.unravel_index().
- Am trecut funcția np.argsort() și forma matricei „a”.
- Am trecut matricea 2-D „a” și axa ca 1 în funcția argsort().
- Apoi, am încercat să tipărim valoarea indicilor și a[indicilor].
În rezultat, a fost afișată o matrice N-D cu elemente sortate.
Exemplul 7: Sortarea cu chei
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'),>