Arrays Sorteren
Deze operatie is uiterst nuttig omdat zoeken in een gesorteerde array veel sneller is, omdat efficiënte algoritmen zoals binaire zoekopdracht alleen werken met gesorteerde arrays.
numpy.sort() functie
NumPy heeft een ingebouwde functie sort()
voor het sorteren van elementen op waarden in oplopende volgorde. De retourwaarde van deze functie is een gesorteerde NumPy array. Hier is de algemene syntaxis: numpy.sort(a, axis=-1, kind=None, order=None)
, waarbij:
a
een array is;axis
de as is waarlangs gesorteerd moet worden (laatste as (-1
) standaard);kind
het sorteeralgoritme is dat moet worden gebruikt (quicksort
standaard).
import numpy as np array_1d = np.array([10, 2, 5, 1, 6, 5]) print(np.sort(array_1d))
ndarray.sort() methode
Zoals we al eerder hebben vermeld, retourneert de functie numpy.sort()
een gesorteerde array, maar verandert het de originele array niet. Als we de array wilden veranderen, zouden we array = np.sort(array)
moeten schrijven.
Echter, NumPy biedt een .sort()
methode als alternatief, die de array in-place sorteert en geen nieuwe array retourneert (het retourneert None
, wat betekent dat het niets retourneert). De syntaxis is vergelijkbaar met de sort()
functie.
Opmerking
Een functie is een op zichzelf staand blok code dat een specifieke taak uitvoert en direct kan worden aangeroepen. Een methode is een functie die is geassocieerd met een object en wordt aangeroepen op dat object, met behulp van de
.
operator.
import numpy as np array_1d = np.array([10, 2, 5, 1, 6, 5]) # Calling the .sort() method array_1d.sort() print(array_1d)
Na het aanroepen van de .sort()
methode, is array_1d
in plaats gesorteerd en bevat nu elementen in oplopende volgorde.
Sorteren van 1D-arrays in Aflopende Volgorde
Soms willen we een array in aflopende volgorde sorteren. Noch de .sort()
methode, noch de sort()
functie ondersteunt deze functionaliteit direct. We kunnen echter eenvoudig slicing gebruiken met step
gelijk aan -1
op een gesorteerde 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
Je beheert een dataset van werknemerssalarissen opgeslagen in de salaries
array.
- Sorteer de salarissen in aflopende volgorde met behulp van de juiste functie.
- Print de top 3 salarissen met behulp van een slice en specificeer alleen een positief
end
.
Oplossing
Bedankt voor je feedback!