Ordinamento di Array 2D
Come puoi vedere, semplicemente passando il nostro array 2D alla funzione sort()
ordina ogni array 1D lungo l'asse 1 (che è l'opzione predefinita in un array 2D). Impostando axis=0
si ordina ogni array 1D lungo l'asse 0 (ogni colonna).
Impostando axis=None
si ottiene un array 1D ordinato contiguo di tutti gli elementi dell'array 2D.
import numpy as np array_2d = np.array([[2, 9, 3], [1, 6, 4], [5, 7, 8]]) # Sorting a 2D array along axis 1 print(np.sort(array_2d)) # Sorting a 2D array along axis 0 print(np.sort(array_2d, axis=0)) # Creating a 1D sorted array out of the elements of array_2d print(np.sort(array_2d, axis=None))
Ordinamento di Array 2D in Ordine Decrescente
Quando si ordinano array 2D in ordine decrescente lungo un asse dato, è necessario utilizzare due slice: uno slice completo ([:]
) e un altro con un passo negativo ([::-1]
). La posizione dello slice con il passo negativo dovrebbe corrispondere all'asse lungo il quale si sta ordinando.
Nota
Quando si ordina lungo l'asse 0, è possibile utilizzare solo uno slice con un passo negativo, poiché già indicizza lungo questo asse.
import numpy as np array_2d = np.array([[2, 9, 3], [1, 6, 4], [5, 7, 8]]) # Sorting a 2D array along axis 1 in descending order print(np.sort(array_2d)[:, ::-1]) # Sorting a 2D array along axis 0 in descending order print(np.sort(array_2d, axis=0)[::-1]) # Creating a 1D sorted array out of the elements of array_2d in descending order print(np.sort(array_2d, axis=None)[::-1])
Swipe to start coding
Hai un array 2D chiamato exam_scores
contenente i punteggi per ogni esame di una certa materia. Ogni colonna rappresenta una specifica materia, e ogni riga rappresenta un singolo studente. Pertanto, una riga specifica mostra i punteggi di quello studente per ogni esame.
-
Crea un array 2D NumPy chiamato
top_scores_subject
basato suexam_scores
dove ogni colonna, che rappresenta una certa materia, è ordinata per punteggi in ordine decrescente. -
Crea un array 1D NumPy chiamato
sorted_scores
basato suexam_scores
, contenente tutti i punteggi ordinati in ordine crescente.
Facendo ciò, puoi facilmente identificare i punteggi più alti per ogni esame e i punteggi più bassi in tutti gli esami.
Soluzione
Grazie per i tuoi commenti!