logo

numpy.argsort() i Python

NumPy-modulen tillhandahåller en funktion argsort(), returnerar indexen som skulle sortera en array.

NumPy-modulen tillhandahåller en funktion för att utföra en indirekt sortering tillsammans med den givna axeln med hjälp av den algoritm som anges av nyckelordet. Denna funktion returnerar en array av index med samma form som 'a', vilket skulle sortera arrayen.

Syntax

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

Parametrar

Det här är följande parametrar i funktionen numpy.argsort():

uppdatering från join sql

a: array_like

Denna parameter definierar källmatrisen som vi vill sortera.

axel: int eller ingen (valfritt)

Denna parameter definierar axeln längs vilken sorteringen utförs. Som standard är axeln -1. Om vi ​​ställer in denna parameter till None, används den tillplattade arrayen.

typ: {'quicksort','mergesort','heapsort','stable'}(valfritt)

Denna parameter definierar sorteringsalgoritmen. Som standard är algoritmen snabbsort . Både mergesort och stabil använder tidssortering under täcket. Den faktiska implementeringen kommer att variera med datatypen. De mergesort alternativet behålls för bakåtkompatibilitet.

order: str eller lista över str (valfritt)

Om 'a' är en array med definierade fält, anger detta argument vilka fält som ska jämföras först, andra, etc. Det enstaka fältet kan anges som en sträng, och alla fält behöver inte anges. Men ospecificerade fält kommer fortfarande att använda, i den ordning som de kommer upp i dtype, för att bryta banden.

java kast undantag

Returnerar: index_array: ndarray, int

Denna funktion returnerar en array av index som sorterar 'a' tillsammans med den angivna axeln. Om 'a' är 1-D, ger en [index_array] ett sorterat 'a'. Mer allmänt, np.take_along_axis(arr1, index_array, axis=axis) ger alltid det sorterade 'a', oavsett dimensionalitet.

Exempel 1: np.argsort()

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

I ovanstående kod

  • Vi har importerat numpy med alias np.
  • Vi har skapat en array 'a' med funktionen np.array().
  • Vi har deklarerat variabeln 'b' och tilldelat det returnerade värdet för funktionen np.argsort().
  • Vi har passerat arrayen 'a' i funktionen.
  • Till sist försökte vi skriva ut värdet av b.

I utgången har en ndarray visats som innehåller indexen (indikerar elementets position för den sorterade arrayen) och dtype.

Produktion:

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

Exempel 2: För 2D-matris( sorterar längs första axeln (ner))

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

Produktion:

aktuellt datum i java
 array([[0, 1], [1, 0]], dtype=int64) 

Exempel 3: För 2D-matris(alternativ av axel=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) 

I ovanstående kod

  • Vi har importerat numpy med alias np.
  • Vi har skapat en 2D-array 'a' med funktionen np.array().
  • Vi har deklarerat variabelindex och tilldelat det returnerade värdet av funktionen np.argsort().
  • Vi har passerat 2D-matrisen 'a' och axeln som 0.
  • Därefter använde vi funktionen take_along_axis() och skickade källmatrisen, indexen och axeln.
  • Denna funktion har returnerat den sorterade 2-D-matrisen.

I utgången har en 2-D-array med sorterade element visats.

Produktion:

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

Exempel 4: För 2D-matris( sorterar längs sista axeln (tvärs))

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

Produktion:

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

Exempel 5: För 2D-matris(alternativ av axel=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) 

Produktion:

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

Exempel 6: För N-D-array

 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) 

Produktion:

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

I ovanstående kod

  • Vi har importerat numpy med alias np.
  • Vi har skapat en 2D-array 'a' med funktionen np.array().
  • Vi har deklarerat en variabel 'index' och tilldelat det returnerade värdet av funktionen np.unravel_index().
  • Vi har klarat np.argsort()-funktionen och formen för arrayen 'a'.
  • Vi har passerat 2-D-matrisen 'a' och axeln som 1 i funktionen argsort().
  • Därefter försökte vi skriva ut värdet på index och a[index].

I utgången har en N-D-array med sorterade element visats.

sträng java innehåller

Exempel 7: Sortering med nycklar

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