Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Sortering av Arrayer | Vanligt Använda NumPy-Funktioner
Ultimata NumPy

bookSortering av Arrayer

Note
Definition

Sortering innebär att ordna elementen i en array i en viss ordning.

Denna operation är mycket användbar eftersom sökning i en sorterad array är betydligt snabbare, då effektiva algoritmer som binärsökning endast fungerar med sorterade arrayer.

numpy.sort()-funktionen

NumPy har en inbyggd funktion sort() för att sortera element efter värde i stigande ordning. Returvärdet från 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 sker (sista axeln (-1) som standard);
  • kind är sorteringsalgoritmen som används (quicksort som standard).
123
import numpy as np array_1d = np.array([10, 2, 5, 1, 6, 5]) print(np.sort(array_1d))
copy

ndarray.sort()-metoden

Som redan nämnts returnerar funktionen numpy.sort() en sorterad array men ändrar inte ursprungsarrayen. Om arrayen ska ändras måste man skriva array = np.sort(array).

Dock tillhandahåller NumPy en .sort()-metod som alternativ, vilken sorterar arrayen på plats och inte returnerar en ny array (den returnerar None, vilket innebär att inget returneras). Syntaxen är liknande som för funktionen sort().

Note
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.

12345
import numpy as np array_1d = np.array([10, 2, 5, 1, 6, 5]) # Calling the .sort() method array_1d.sort() print(array_1d)
copy

Efter att ha anropat .sort()-metoden sorterades array_1d på plats och innehåller nu element sorterade i stigande ordning.

Sortering av 1D-arrayer i fallande ordning

Ibland kan det vara önskvärt att sortera en array i fallande ordning. Varken .sort()-metoden eller sort()-funktionen stöder denna funktionalitet direkt. Det går dock enkelt att använda slicing med step lika med -1 på en sorterad array:

12345
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)
copy
Uppgift

Swipe to start coding

Du hanterar en datamängd med anställdas löner som lagras i arrayen salaries.

  1. Sortera lönerna i fallande ordning med hjälp av lämplig funktion.
  2. Skriv ut de 3 högsta lönerna genom att använda en slice och endast ange ett positivt end-värde.

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 1
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

close

Awesome!

Completion rate improved to 3.7

bookSortering av Arrayer

Svep för att visa menyn

Note
Definition

Sortering innebär att ordna elementen i en array i en viss ordning.

Denna operation är mycket användbar eftersom sökning i en sorterad array är betydligt snabbare, då effektiva algoritmer som binärsökning endast fungerar med sorterade arrayer.

numpy.sort()-funktionen

NumPy har en inbyggd funktion sort() för att sortera element efter värde i stigande ordning. Returvärdet från 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 sker (sista axeln (-1) som standard);
  • kind är sorteringsalgoritmen som används (quicksort som standard).
123
import numpy as np array_1d = np.array([10, 2, 5, 1, 6, 5]) print(np.sort(array_1d))
copy

ndarray.sort()-metoden

Som redan nämnts returnerar funktionen numpy.sort() en sorterad array men ändrar inte ursprungsarrayen. Om arrayen ska ändras måste man skriva array = np.sort(array).

Dock tillhandahåller NumPy en .sort()-metod som alternativ, vilken sorterar arrayen på plats och inte returnerar en ny array (den returnerar None, vilket innebär att inget returneras). Syntaxen är liknande som för funktionen sort().

Note
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.

12345
import numpy as np array_1d = np.array([10, 2, 5, 1, 6, 5]) # Calling the .sort() method array_1d.sort() print(array_1d)
copy

Efter att ha anropat .sort()-metoden sorterades array_1d på plats och innehåller nu element sorterade i stigande ordning.

Sortering av 1D-arrayer i fallande ordning

Ibland kan det vara önskvärt att sortera en array i fallande ordning. Varken .sort()-metoden eller sort()-funktionen stöder denna funktionalitet direkt. Det går dock enkelt att använda slicing med step lika med -1 på en sorterad array:

12345
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)
copy
Uppgift

Swipe to start coding

Du hanterar en datamängd med anställdas löner som lagras i arrayen salaries.

  1. Sortera lönerna i fallande ordning med hjälp av lämplig funktion.
  2. Skriv ut de 3 högsta lönerna genom att använda en slice och endast ange ett positivt end-värde.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 1
single

single

some-alt