Sortera Arrayer
Denna operation är extremt användbar eftersom sökning i en sorterad array är mycket snabbare eftersom effektiva algoritmer som binärsökning fungerar endast med sorterade arrayer.
numpy.sort() funktion
NumPy har en inbyggd funktion sort()
för att sortera element efter värden i stigande ordning. Returvärdet av denna funktion är en sorterad NumPy array. Här är dess allmänna syntax: numpy.sort(a, axis=-1, kind=None, order=None)
, där:
a
är en array;axis
är axeln längs vilken sorteringen ska ske (sista axeln (-1
) som standard);kind
är sorteringsalgoritmen som ska användas (quicksort
som standard).
import numpy as np array_1d = np.array([10, 2, 5, 1, 6, 5]) print(np.sort(array_1d))
ndarray.sort() metod
Som vi redan nämnt, returnerar numpy.sort()
funktionen en sorterad array men ändrar inte den ursprungliga arrayen. Om vi ville ändra arrayen, skulle vi behöva skriva array = np.sort(array)
.
Men, NumPy tillhandahåller en .sort()
metod som ett alternativ, vilket sorterar arrayen på plats och returnerar inte en ny array (den returnerar None
, vilket betyder att den inte returnerar någonting). Dess syntax är liknande sort()
funktionen.
Notera
En funktion är ett fristående kodblock som utför en specifik uppgift och kan anropas direkt. En metod är en funktion som är associerad med ett objekt och anropas på det objektet, med hjälp av
.
operatorn.
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 att ha anropat .sort()
metoden, sorterades array_1d
på plats och innehåller nu element sorterade i stigande ordning.
Sortera 1D-arrayer i fallande ordning
Ibland kan vi vilja sortera en array i fallande ordning. Varken .sort()
-metoden eller sort()
-funktionen stöder denna funktionalitet direkt. Men vi kan enkelt använda slicing med step
lika med -1
på en sorterad 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 hanterar en dataset med anställdas löner lagrade i salaries
arrayen.
- Sortera lönerna i fallande ordning med hjälp av lämplig funktion.
- Skriv ut de 3 högsta lönerna med hjälp av en slice och specificera endast ett positivt
end
.
Lösning
Tack för dina kommentarer!