logo

numpy.argsort() in Python

Il modulo NumPy fornisce una funzione argsort(), restituisce gli indici che ordinerebbero un array.

Il modulo NumPy fornisce una funzione per eseguire un ordinamento indiretto insieme all'asse specificato con l'aiuto dell'algoritmo specificato dalla parola chiave. Questa funzione restituisce un array di indici della stessa forma di 'a', che ordinerebbe l'array.

Sintassi

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

Parametri

Questi sono i seguenti parametri nella funzione numpy.argsort():

tipi di apprendimento automatico

a: array_like

Questo parametro definisce l'array di origine che vogliamo ordinare.

asse: int o Nessuno (facoltativo)

Questo parametro definisce l'asse lungo il quale viene eseguito l'ordinamento. Per impostazione predefinita, l'asse è -1. Se impostiamo questo parametro su None, viene utilizzato l'array appiattito.

tipo: {'quicksort','mergesort','heapsort','stable'}(facoltativo)

Questo parametro definisce l'algoritmo di ordinamento. Per impostazione predefinita, l'algoritmo è Quicksort . Entrambi Mergesort E stabile stanno usando l'ordinamento temporale sotto le coperte. L'implementazione effettiva varierà in base al tipo di dati. IL Mergesort l'opzione viene mantenuta per compatibilità con le versioni precedenti.

quante città negli Stati Uniti

ordine: str o elenco di str (opzionale)

Se 'a' è un array con campi definiti, questo argomento specifica quali campi confrontare per primi, secondi, ecc. Il singolo campo può essere specificato come una stringa e non è necessario specificare tutti i campi. Ma i campi non specificati verranno comunque utilizzati, nell'ordine in cui compaiono nel dtype, per rompere i legami.

Restituisce: array_indice: ndarray, int

Questa funzione restituisce un array di indici che ordinano 'a' insieme all'asse specificato. Se 'a' è 1-D, a[index_array] restituisce una 'a' ordinata. Più generalmente, np.take_along_axis(arr1, indice_array, asse=asse) produce sempre la 'a' ordinata, indipendentemente dalla dimensionalità.

Esempio 1: np.argsort()

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

Nel codice sopra

  • Abbiamo importato Numpy con il nome alias np.
  • Abbiamo creato un array 'a' utilizzando la funzione np.array().
  • Abbiamo dichiarato la variabile 'b' e assegnato il valore restituito dalla funzione np.argsort().
  • Abbiamo passato l'array 'a' nella funzione.
  • Infine, abbiamo provato a stampare il valore di b.

Nell'output è stato mostrato un ndarray che contiene gli indici (indicano la posizione dell'elemento per l'array ordinato) e dtype.

Produzione:

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

Esempio 2: per array 2D (ordina lungo il primo asse (verso il basso))

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

Produzione:

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

Esempio 3: per array 2D (alternativa all'asse=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) 

Nel codice sopra

  • Abbiamo importato Numpy con il nome alias np.
  • Abbiamo creato un array 2D 'a' utilizzando la funzione np.array().
  • Abbiamo dichiarato gli indici variabili e assegnato il valore restituito dalla funzione np.argsort().
  • Abbiamo passato l'array 2D 'a' e l'asse come 0.
  • Successivamente, abbiamo utilizzato la funzione take_along_axis() e passato l'array di origine, gli indici e l'asse.
  • Questa funzione ha restituito l'array 2D ordinato.

Nell'output è stato mostrato un array 2D con elementi ordinati.

Produzione:

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

Esempio 4: per un array 2D (ordina lungo l'ultimo asse (attraverso))

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

Produzione:

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

Esempio 5: per array 2D (alternativa all'asse=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) 

Produzione:

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

Esempio 6: per array ND

 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) 

Produzione:

carattere per stringa Java
 (array([0, 1, 1, 0], dtype=int64), array([0, 1, 0, 1], dtype=int64)) array([0, 2, 3, 5]) 

Nel codice sopra

  • Abbiamo importato Numpy con il nome alias np.
  • Abbiamo creato un array 2D 'a' utilizzando la funzione np.array().
  • Abbiamo dichiarato una variabile 'indices' e assegnato il valore restituito dalla funzione np.unravel_index().
  • Abbiamo passato la funzione np.argsort() e la forma dell'array 'a'.
  • Abbiamo passato l'array 2D 'a' e l'asse come 1 nella funzione argsort().
  • Successivamente, abbiamo provato a stampare il valore di indici e a[indices].

Nell'output è stato mostrato un array ND con elementi ordinati.

Esempio 7: ordinamento con chiavi

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