Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Sortering af Arrays | Almindeligt Anvendte NumPy-Funktioner
Ultimativ NumPy

Stryg for at vise menuen

book
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).

123
import numpy as np array_1d = np.array([10, 2, 5, 1, 6, 5]) print(np.sort(array_1d))
copy

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.

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 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:

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
Opgave

Swipe to start coding

Du administrerer et datasæt af medarbejderlønninger gemt i salaries arrayet.

  1. Sortér lønningerne i faldende rækkefølge ved hjælp af den passende funktion.
  2. Udskriv de 3 højeste lønninger ved hjælp af en slice og kun angive en positiv end.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 1
Vi beklager, at noget gik galt. Hvad skete der?

Spørg AI

expand
ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

book
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).

123
import numpy as np array_1d = np.array([10, 2, 5, 1, 6, 5]) print(np.sort(array_1d))
copy

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.

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 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:

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
Opgave

Swipe to start coding

Du administrerer et datasæt af medarbejderlønninger gemt i salaries arrayet.

  1. Sortér lønningerne i faldende rækkefølge ved hjælp af den passende funktion.
  2. Udskriv de 3 højeste lønninger ved hjælp af en slice og kun angive en positiv end.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 1
Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Vi beklager, at noget gik galt. Hvad skete der?
some-alt