logo

numpy.argsort() a Python

El mòdul NumPy proporciona una funció argsort(), retorna els índexs que ordenarien una matriu.

El mòdul NumPy proporciona una funció per realitzar una ordenació indirecta juntament amb l'eix donat amb l'ajuda de l'algorisme especificat per la paraula clau. Aquesta funció retorna una matriu d'índexs de la mateixa forma que 'a', que ordenaria la matriu.

Sintaxi

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

Paràmetres

Aquests són els paràmetres següents a la funció numpy.argsort():

què és l'objecte java

a: array_like

Aquest paràmetre defineix la matriu font que volem ordenar.

eix: int o Cap (opcional)

Aquest paràmetre defineix l'eix al llarg del qual es realitza l'ordenació. Per defecte, l'eix és -1. Si establim aquest paràmetre a Cap, s'utilitza la matriu aplanada.

tipus: {'quicksort','mergesort','heapsort','stable'} (opcional)

Aquest paràmetre defineix l'algorisme d'ordenació. Per defecte, l'algorisme és classificació ràpida . Tots dos mergesort i estable estan utilitzant l'ordenació temporal sota les cobertes. La implementació real variarà segons el tipus de dades. El mergesort es conserva l'opció per a la compatibilitat enrere.

ordre: str o llista de str (opcional)

Si 'a' és una matriu amb camps definits, aquest argument especifica quins camps s'han de comparar primer, segon, etc. El camp únic es pot especificar com una cadena i no cal especificar tots els camps. Però els camps no especificats seguiran utilitzant, en l'ordre en què apareixen al dtype, per trencar els llaços.

in.next java

Retorna: index_array: ndarray, int

Aquesta funció retorna una matriu d'índexs que ordenen 'a' juntament amb l'eix especificat. Si 'a' és 1-D, a[index_array] produeix una 'a' ordenada. Més generalment, np.take_along_axis(arr1, index_array, axis=axis) sempre dóna la 'a' ordenada, independentment de la dimensionalitat.

Exemple 1: np.argsort()

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

En el codi anterior

  • Hem importat numpy amb el nom d'àlies np.
  • Hem creat una matriu 'a' utilitzant la funció np.array().
  • Hem declarat la variable 'b' i hem assignat el valor retornat de la funció np.argsort().
  • Hem passat la matriu 'a' a la funció.
  • Finalment, hem intentat imprimir el valor de b.

A la sortida, s'ha mostrat un ndarray que conté els índexs (indiqueu la posició de l'element per a la matriu ordenada) i dtype.

Sortida:

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

Exemple 2: per a matriu 2D (ordena al llarg del primer eix (avall))

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

Sortida:

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

Exemple 3: per a una matriu 2D (alternativa de l'eix = 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) 

En el codi anterior

  • Hem importat numpy amb el nom d'àlies np.
  • Hem creat una matriu 2-D 'a' utilitzant la funció np.array().
  • Hem declarat índexs variables i assignat el valor retornat de la funció np.argsort().
  • Hem passat la matriu 2-D 'a' i l'eix com a 0.
  • A continuació, hem utilitzat la funció take_along_axis() i hem passat la matriu font, els índexs i l'eix.
  • Aquesta funció ha retornat la matriu 2-D ordenada.

A la sortida, s'ha mostrat una matriu 2-D amb elements ordenats.

Sortida:

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

Exemple 4: per a una matriu 2D (ordena al llarg de l'últim eix (a través))

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

Sortida:

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

Exemple 5: per a una matriu 2D (alternativa de l'eix = 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) 

Sortida:

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

Exemple 6: per a la matriu 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) 

Sortida:

 (array([0, 1, 1, 0], dtype=int64), array([0, 1, 0, 1], dtype=int64)) array([0, 2, 3, 5]) 

En el codi anterior

  • Hem importat numpy amb el nom d'àlies np.
  • Hem creat una matriu 2-D 'a' utilitzant la funció np.array().
  • Hem declarat una variable 'índexs' i hem assignat el valor retornat de la funció np.unravel_index().
  • Hem passat la funció np.argsort() i la forma de la matriu 'a'.
  • Hem passat la matriu 2-D 'a' i l'eix com a 1 a la funció argsort().
  • A continuació, vam intentar imprimir el valor dels índexs i a[índexs].

A la sortida, s'ha mostrat una matriu N-D amb elements ordenats.

algorisme k-nn

Exemple 7: Ordenació amb claus

 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'),>