Ordina array per colonna in NumPy
-
NumPy Ordina array per colonna con la funzione
numpy.sort()
-
NumPy Ordina array per colonna con la funzione
numpy.argsort()
Questo tutorial introdurrà i metodi per ordinare un array per colonna in NumPy.
NumPy Ordina array per colonna con la funzione numpy.sort()
Supponiamo di avere un array NumPy 2D e di voler ordinare le righe in base all’ordine degli elementi all’interno di una colonna specifica. Possiamo farlo con la funzione numpy.sort()
. La funzione numpy.sort()
ordina l’array NumPy. Possiamo specificare l’indice di colonna e l’asse nei parametri order
e axis
della funzione numpy.sort()
. Dobbiamo convertire il nostro array in un array strutturato con campi per utilizzare la funzione numpy.sort()
. Possiamo usare la funzione numpy.view()
per farlo. Vedere il seguente esempio di codice.
import numpy as np
array = np.array([[1, 1, 2], [0, 0, 1], [1, 1, 3]])
print("Array before sorting\n", array)
array.view("i8,i8,i8").sort(order=["f1"], axis=0)
print("Array after sorting\n", array)
Produzione:
Array before sorting
[[1 1 2]
[0 0 1]
[1 1 3]]
Array after sorting
[[0 0 1]
[1 1 2]
[1 1 3]]
Per prima cosa abbiamo creato l’array 2D NumPy array
con la funzione np.array()
. Quindi abbiamo convertito l’array
in un array strutturato con la funzione array.view()
. Successivamente, abbiamo ordinato l’array per seconda colonna con la funzione sort(order=['f1'], axis=0)
. Qui f1
si riferisce alla seconda colonna.
NumPy Ordina array per colonna con la funzione numpy.argsort()
Un altro modo più semplice per fare esattamente la stessa cosa dell’approccio precedente è usare la funzione numpy.argsort()
. La funzione numpy.argsort()
è usata anche per ordinare gli elementi di un array. È molto simile all’approccio precedente, ma non è necessario utilizzare la funzione numpy.view()
affinché questo approccio funzioni. La funzione numpy.argsort()
restituisce gli indici che verrebbero utilizzati per ordinare un array. Vedere il seguente esempio di codice.
import numpy as np
array = np.array([[1, 1, 2], [0, 0, 1], [1, 1, 3]])
print("Array before sorting\n", array)
array[array[:, 1].argsort()]
print("Array after sorting\n", array)
Produzione:
Array before sorting
[[1 1 2]
[0 0 1]
[1 1 3]]
Array after sorting
[[0 0 1]
[1 1 2]
[1 1 3]]
Per prima cosa abbiamo creato un array NumPy 2D array
con la funzione np.array()
. Abbiamo quindi utilizzato una sezione dell’array per specificare solo la seconda colonna dell’array
e l’abbiamo ordinata con la funzione np.argsort()
. Abbiamo usato gli indici restituiti dalla funzione np.argsort()
per ordinare l’array
.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn