Ordinamento degli Array
Questa operazione è estremamente utile poiché la ricerca in un array ordinato è molto più veloce perché algoritmi efficienti come la ricerca binaria funzionano solo con array ordinati.
funzione numpy.sort()
NumPy ha una funzione integrata sort()
per ordinare gli elementi per valori in ordine crescente. Il valore restituito di questa funzione è un array NumPy ordinato. Ecco la sua sintassi generale: numpy.sort(a, axis=-1, kind=None, order=None)
, dove:
a
è un array;axis
è l'asse lungo il quale ordinare (ultimo asse (-1
) per impostazione predefinita);kind
è l'algoritmo di ordinamento da utilizzare (quicksort
per impostazione predefinita).
import numpy as np array_1d = np.array([10, 2, 5, 1, 6, 5]) print(np.sort(array_1d))
Metodo ndarray.sort()
Come abbiamo già menzionato, la funzione numpy.sort()
restituisce un array ordinato ma non modifica l'array originale. Se volessimo modificare l'array, dovremmo scrivere array = np.sort(array)
.
Tuttavia, NumPy fornisce un metodo .sort()
come alternativa, che ordina l'array in loco e non restituisce un nuovo array (restituisce None
, il che significa che non restituisce nulla). La sua sintassi è simile alla funzione sort()
.
Nota
Una funzione è un blocco di codice autonomo che esegue un compito specifico e può essere chiamato direttamente. Un metodo è una funzione associata a un oggetto e viene chiamata su quell'oggetto, utilizzando l'operatore
.
.
import numpy as np array_1d = np.array([10, 2, 5, 1, 6, 5]) # Calling the .sort() method array_1d.sort() print(array_1d)
Dopo aver chiamato il metodo .sort()
, array_1d
è stato ordinato in loco e ora contiene elementi ordinati in ordine crescente.
Ordinamento di Array 1D in Ordine Decrescente
A volte potremmo voler ordinare un array in ordine decrescente. Né il metodo .sort()
né la funzione sort()
supportano direttamente questa funzionalità. Tuttavia, possiamo semplicemente utilizzare lo slicing con step
uguale a -1
su un array ordinato:
import numpy as np array_1d = np.array([10, 2, 5, 1, 6, 5]) # Sorting array_1d in descending order array_1d = np.sort(array_1d)[::-1] print(array_1d)
Swipe to start coding
Stai gestendo un dataset di stipendi dei dipendenti memorizzato nell'array salaries
.
- Ordina gli stipendi in ordine decrescente utilizzando la funzione appropriata.
- Stampa i primi 3 stipendi utilizzando uno slice e specificando solo un
end
positivo.
Soluzione
Grazie per i tuoi commenti!