Sortering av Matriser
Denne operasjonen er ekstremt nyttig siden søking i en sortert array er mye raskere fordi effektive algoritmer som binærsøk fungerer kun med sorterte arrays.
numpy.sort() funksjon
NumPy har en innebygd funksjon sort()
for å sortere elementer etter verdier i stigende rekkefølge. Returverdien av denne funksjonen er en sortert NumPy array. Her er den generelle syntaksen: numpy.sort(a, axis=-1, kind=None, order=None)
, hvor:
a
er en array;axis
er aksen langs hvilken det skal sorteres (siste akse (-1
) som standard);kind
er sorteringsalgoritmen som skal brukes (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 har nevnt, returnerer numpy.sort()
funksjonen en sortert array, men endrer ikke den opprinnelige arrayen. Hvis vi ønsket å endre arrayen, måtte vi skrive array = np.sort(array)
.
Imidlertid gir NumPy en .sort()
metode som et alternativ, som sorterer arrayen på stedet og ikke returnerer en ny array (den returnerer None
, noe som betyr at den ikke returnerer noe). Syntaksen er lik sort()
funksjonen.
Merk
En funksjon er en frittstående blokk med kode som utfører en spesifikk oppgave og kan kalles direkte. En metode er en funksjon som er knyttet til et objekt og kalles på det objektet, ved å bruke
.
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)
Etter å ha kalt .sort()
metoden, ble array_1d
sortert på stedet og inneholder nå elementer sortert i stigende rekkefølge.
Sortering av 1D-arrays i synkende rekkefølge
Noen ganger ønsker vi å sortere en array i synkende rekkefølge. Verken .sort()
-metoden eller sort()
-funksjonen støtter denne funksjonaliteten direkte. Vi kan imidlertid enkelt bruke slicing med step
lik -1
på en sortert 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 datasett med ansattes lønninger lagret i salaries
-arrayet.
- Sorter lønningene i synkende rekkefølge ved å bruke den passende funksjonen.
- Skriv ut de 3 høyeste lønningene ved å bruke en slice og spesifisere kun en positiv
end
.
Løsning
Takk for tilbakemeldingene dine!