Sortering af Arrays
Denne operation er ekstremt nyttig, da søgning i en sorteret array er meget hurtigere, fordi effektive algoritmer som binær søgning fungerer kun med sorterede arrays.
numpy.sort() funktion
NumPy har en indbygget funktion sort()
til at sortere elementer efter værdier i stigende rækkefølge. Returværdien af denne funktion er en sorteret NumPy array. Her er dens generelle syntaks: numpy.sort(a, axis=-1, kind=None, order=None)
, hvor:
a
er en array;axis
er aksen langs hvilken der skal sorteres (sidste akse (-1
) som standard);kind
er den sorteringsalgoritme, der skal bruges (quicksort
som standard).
import numpy as np array_1d = np.array([10, 2, 5, 1, 6, 5]) print(np.sort(array_1d))
ndarray.sort() metode
Som vi allerede nævnte, returnerer numpy.sort()
funktionen en sorteret array, men ændrer ikke den oprindelige array. Hvis vi ønskede at ændre arrayen, skulle vi skrive array = np.sort(array)
.
Men NumPy tilbyder en .sort()
metode som et alternativ, der sorterer arrayen in-place og ikke returnerer en ny array (den returnerer None
, hvilket betyder, at den ikke returnerer noget). Dens syntaks er lig sort()
funktionen.
Bemærk
En funktion er en selvstændig blok af kode, der udfører en specifik opgave og kan kaldes direkte. En metode er en funktion, der er knyttet til et objekt og kaldes på det objekt ved hjælp af
.
operatoren.
import numpy as np array_1d = np.array([10, 2, 5, 1, 6, 5]) # Calling the .sort() method array_1d.sort() print(array_1d)
Efter at have kaldt .sort()
metoden, blev array_1d
sorteret in place og indeholder nu elementer sorteret i stigende rækkefølge.
Sortering af 1D Arrays i Faldende Rækkefølge
Nogle gange vil vi måske sortere et array i faldende rækkefølge. Hverken .sort()
metoden eller sort()
funktionen understøtter denne funktionalitet direkte. Dog kan vi simpelthen bruge slicing med step
lig med -1
på et sorteret array:
import numpy as np array_1d = np.array([10, 2, 5, 1, 6, 5]) # Sorting array_1d in descending order array_1d = np.sort(array_1d)[::-1] print(array_1d)
Swipe to start coding
Du administrerer et datasæt af medarbejderlønninger gemt i salaries
arrayet.
- Sortér lønningerne i faldende rækkefølge ved hjælp af den passende funktion.
- Udskriv de 3 højeste lønninger ved hjælp af en slice og kun angive en positiv
end
.
Løsning
Tak for dine kommentarer!