Sortering af 2D-Arrays
Som du kan se, ved blot at passere vores 2D-array til sort()
-funktionen, sorteres hver 1D-array langs akse 1 (som er standardindstillingen i et 2D-array). Indstilling af axis=0
sorterer hver 1D-array langs akse 0 (hver kolonne).
Indstilling af axis=None
returnerer en sammenhængende sorteret 1D-array af alle elementerne i 2D-arrayet.
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))
Sortering af 2D-arrays i faldende rækkefølge
Når du sorterer 2D-arrays i faldende rækkefølge langs en given akse, skal du bruge to slices: en fuld slice ([:]
) og en anden med et negativt trin ([::-1]
). Positionen af slicen med det negative trin skal svare til den akse, langs hvilken du sorterer.
Bemærk
Når du sorterer langs akse 0, kan du kun bruge en slice med et negativt trin, da den allerede indekserer langs denne akse.
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
Du har et 2D-array ved navn exam_scores
, der indeholder resultaterne for hver eksamen fra et bestemt fag. Hver kolonne repræsenterer et specifikt fag, og hver række repræsenterer en individuel studerende. Således viser en specifik række resultaterne af den studerende for hver eksamen.
-
Opret et 2D NumPy array ved navn
top_scores_subject
baseret påexam_scores
, hvor hver kolonne, der repræsenterer et bestemt fag, er sorteret efter resultater i faldende rækkefølge. -
Opret et 1D NumPy array ved navn
sorted_scores
baseret påexam_scores
, der indeholder alle resultater sorteret i stigende rækkefølge.
Ved at gøre dette kan du nemt identificere de højeste resultater for hver eksamen og de laveste resultater på tværs af alle eksamener.
Løsning
Tak for dine kommentarer!