Jak działa numpy sort w języku Python? Przykład zastosowania

Jak działa numpy sort w języku Python? Przykład zastosowania
„`html

Sortowanie tablic w Pythonie to jedna z kluczowych operacji w analizie danych czy machine learningu. Biblioteka NumPy oferuje funkcję numpy.sort(), która umożliwia szybkie i wygodne sortowanie tablic wielowymiarowych. W tym artykule przyjrzymy się dokładnie, jak działa numpy.sort() w języku Python, a także zaprezentuję praktyczne przykłady zastosowania.

Czym jest numpy.sort()?

Funkcja numpy.sort() służy do sortowania elementów tablicy NumPy. Obsługuje zarówno tablice jednowymiarowe, jak i wielowymiarowe, oferując przy tym możliwość sortowania wzdłuż określonej osi.

Jej podstawowa składnia wygląda tak:

numpy.sort(a, axis=-1, kind='quicksort', order=None)

Gdzie:

  • a – tablica do posortowania,
  • axis – oś, wzdłuż której ma zostać wykonane sortowanie (domyślnie -1, czyli ostatnia oś),
  • kind – algorytm sortowania ('quicksort', 'mergesort', 'heapsort', 'stable'),
  • order – do sortowania tablic z polami (strukturalnymi danymi).

Przykłady zastosowania numpy.sort()

Sortowanie tablicy jednowymiarowej

Najprostszy przypadek to sortowanie listy liczb:

import numpy as np

arr = np.array([3, 1, 4, 1, 5, 9, 2])
sorted_arr = np.sort(arr)

print(sorted_arr)
# Wynik: [1 1 2 3 4 5 9]

Funkcja numpy.sort() tworzy nową posortowaną tablicę i nie zmienia oryginalnej.

Sortowanie tablicy wielowymiarowej

Jeśli mamy tablicę 2D, możemy określić, wzdłuż której osi chcemy przeprowadzić sortowanie:

arr_2d = np.array([[3, 1, 4], [1, 5, 9], [2, 6, 5]])
sorted_arr_2d = np.sort(arr_2d, axis=1)

print(sorted_arr_2d)
# Wynik:
# [[1 3 4]
#  [1 5 9]
#  [2 5 6]]

W tym przypadku sortowanie odbywa się wzdłuż wierszy (oś axis=1), czyli każda lista wewnętrzna jest osobno uporządkowana.

Sortowanie wzdłuż różnych osi

Możemy także posortować tablicę względem kolumn. Wystarczy zmienić wartość parametru axis na 0:

sorted_arr_2d_axis0 = np.sort(arr_2d, axis=0)

print(sorted_arr_2d_axis0)
# Wynik:
# [[1 1 4]
#  [2 5 5]
#  [3 6 9]]

Teraz wartości zostały posortowane pionowo, w obrębie każdej kolumny.

Rodzaje algorytmów sortowania

Funkcja numpy.sort() pozwala na wybór różnych algorytmów sortowania:

Nazwa Opis
'quicksort' Domyślny algorytm. Szybki, ale niestabilny.
'mergesort' Stabilny, ale nieco wolniejszy.
'heapsort' Wykorzystuje strukturę kopca, zawsze O(n log n).
'stable' Stabilne sortowanie, najczęściej mergesort.

Przykładowe wykorzystanie stabilnego algorytmu mergesort:

stable_sorted_arr = np.sort(arr, kind='mergesort')

Sortowanie tablic ze strukturami danych

numpy.sort() obsługuje także tablice ze strukturami danych:

dtype = [('name', 'S10'), ('score', int)]
data = np.array([('Alice', 75), ('Bob', 92), ('Charlie', 88)], dtype=dtype)

sorted_data = np.sort(data, order='score')
print(sorted_data)

Wynik to posortowana tablica względem wartości w kolumnie 'score'.

Podsumowanie

Funkcja numpy.sort() to potężne narzędzie do sortowania tablic NumPy. Obsługuje sortowanie jedno- i wielowymiarowe, pozwala na wybór algorytmu sortowania oraz umożliwia sortowanie tablic ze strukturami danych.

Najważniejsze cechy, które warto zapamiętać:

  • Domyślnie sortuje wzdłuż ostatniej osi.
  • Nie modyfikuje oryginalnej tablicy – zwraca nową posortowaną.
  • Umożliwia wybór algorytmu sortowania (quicksort, mergesort, heapsort, stable).
  • Obsługuje tablice jednowymiarowe i wielowymiarowe.
  • Może sortować względem konkretnych pól w tablicach ze strukturami danych.

Dzięki temu numpy.sort() to niezwykle przydatne narzędzie w pracy z danymi w Pythonie.

„` Inny ciekawy artykuł: Jak działa numpy argsort w języku Python? Przykład zastosowania
KajoDataSpace