📢 Nuovo Corso Bootstrap Completo disponibile!

Ordinare Array in NumPy

L’ordinamento degli array è una parte essenziale del lavoro con dati in NumPy. NumPy offre diverse funzioni per ordinare array in modo flessibile. In questo articolo, esploreremo come ordinare gli array utilizzando NumPy, inclusi esempi per array multidimensionali.

Utilizzo di np.sort (Ordinamento senza Modifica)

La funzione np.sort viene utilizzata per ordinare un array senza modificarlo direttamente. Restituisce una copia ordinata dell’array originale. Puoi specificare l’asse lungo il quale effettuare l’ordinamento utilizzando il parametro axis.

Ecco un esempio di utilizzo di np.sort con un array unidimensionale:

import numpy as np
# Creazione di un array unidimensionale
arr = np.array([3, 1, 2, 4])
# Ordinamento dell'array
sorted_arr = np.sort(arr)
print(sorted_arr)
# Restituisce: [1 2 3 4]

In questo esempio, np.sort ordina l’array arr in ordine crescente.

Utilizzo di np.argsort (Indici dell’Ordinamento)

La funzione np.argsort restituisce gli indici che riordinerebbero l’array in ordine crescente. Questo è utile quando si desidera ottenere gli indici degli elementi in base all’ordine di classificazione.

Ecco un esempio:

import numpy as np
# Creazione di un array unidimensionale
arr = np.array([3, 1, 2, 4])
# Ottieni gli indici per l'ordinamento
indices = np.argsort(arr)
print(indices)
# Restituisce: [1 2 0 3]

In questo esempio, indices contiene gli indici degli elementi di arr in modo che possano essere riordinati in ordine crescente.

Utilizzo di np.sort con Array Multidimensionali

Per ordinare array multidimensionali, puoi specificare l’asse lungo il quale effettuare l’ordinamento utilizzando il parametro axis. Ecco un esempio di ordinamento di una matrice bidimensionale:

import numpy as np
# Creazione di una matrice
matrix = np.array([[3, 1, 2], [6, 4, 5]])
# Ordinamento lungo le colonne (asse 0)
sorted_matrix_col = np.sort(matrix, axis=0)
print(sorted_matrix_col)
# Restituisce:
# [[3 1 2]
# [6 4 5]]

In questo caso, np.sort ordina la matrice lungo l’asse delle colonne (asse 0).

Per ordinare lungo le righe (asse 1), puoi utilizzare:

sorted_matrix_row = np.sort(matrix, axis=1)

Utilizzo di np.sort con Ordine Personalizzato

Puoi specificare un ordine personalizzato per l’ordinamento utilizzando il parametro kind. Ad esempio, puoi ordinare in ordine decrescente utilizzando kind='quicksort' e specificando l’indice -1 per l’asse.

sorted_arr_desc = np.sort(arr, kind='quicksort')[::-1]

Conclusioni

L’ordinamento degli array è una parte fondamentale dell’analisi dei dati in NumPy. Con le funzioni np.sort e np.argsort, puoi ordinare array in modo efficiente in base alle tue esigenze specifiche, indipendentemente dalle dimensioni degli array. Ricorda di specificare l’asse corretto quando lavori con array multidimensionali per ottenere il risultato desiderato.