Sorteren van 2D-Arrays
Zoals je kunt zien, sorteert het eenvoudig doorgeven van onze 2D-array aan de sort()
-functie elke 1D-array langs de as 1 (wat de standaardoptie is in een 2D-array). Door axis=0
in te stellen, wordt elke 1D-array langs de as 0 (elke kolom) gesorteerd.
Door axis=None
in te stellen, wordt een aaneengesloten gesorteerde 1D-array van alle elementen van de 2D-array geretourneerd.
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))
Sorteren van 2D-arrays in Aflopende Volgorde
Bij het sorteren van 2D-arrays in aflopende volgorde langs een bepaalde as, moet je twee slices gebruiken: één volledige slice ([:]
) en een andere met een negatieve stap ([::-1]
). De positie van de slice met de negatieve stap moet overeenkomen met de as waarlangs je sorteert.
Opmerking
Bij het sorteren langs as 0, kun je alleen een slice met een negatieve stap gebruiken, omdat deze al indexeert langs deze as.
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
Je hebt een 2D-array genaamd exam_scores
die de scores voor elk examen van een bepaald vak bevat. Elke kolom vertegenwoordigt een specifiek vak, en elke rij vertegenwoordigt een individuele student. Dus, een specifieke rij toont de scores van die student voor elk examen.
-
Maak een 2D NumPy-array genaamd
top_scores_subject
gebaseerd opexam_scores
waarbij elke kolom, die een bepaald vak vertegenwoordigt, is gesorteerd op scores in aflopende volgorde. -
Maak een 1D NumPy-array genaamd
sorted_scores
gebaseerd opexam_scores
, die alle scores bevat gesorteerd in oplopende volgorde.
Door dit te doen, kun je gemakkelijk de hoogste scores voor elk examen en de laagste scores over alle examens identificeren.
Oplossing
Bedankt voor je feedback!