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

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

Funkcja numpy.split() w języku Python to jedno z podstawowych narzędzi w bibliotece NumPy, które pozwalają na podział tablicy na mniejsze fragmenty. Jest to szczególnie przydatne w przetwarzaniu danych, uczeniu maszynowym i analizie dużych zbiorów numerycznych. W tym artykule wyjaśnię, jak dokładnie działa numpy.split(), jakie ma zastosowania oraz zaprezentuję praktyczne przykłady użycia.

Podstawowe działanie numpy.split()

Funkcja numpy.split() pozwala podzielić tablicę NumPy na równomierne fragmenty. Wymaga podania trzech argumentów:

  • ary – tablica NumPy, którą chcemy podzielić.
  • indices_or_sections – liczba sekcji lub lista indeksów, na bazie których nastąpi podział.
  • axis (opcjonalnie) – oś, wzdłuż której następuje split (domyślnie 0, czyli rozdzielenie wzdłuż wierszy).

Podział tablicy na równe części

Najprostszym przypadkiem użycia jest podział tablicy 1D na określoną liczbę równych części.


import numpy as np

# Tworzymy tablicę
arr = np.array([1, 2, 3, 4, 5, 6])

# Dzielimy na 3 równe części
split_arrays = np.split(arr, 3)

# Wyświetlamy wynik
for sub_array in split_arrays:
    print(sub_array)

Wynik:

[1 2]
[3 4]
[5 6]

Trzeba pamiętać, że tablica musi dać się podzielić równo – inaczej funkcja rzuci wyjątek.

Podział z wykorzystaniem indeksów

Jeśli chcemy podzielić tablicę w nieregularnych miejscach, możemy użyć listy indeksów.


arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])

# Podział na trzy części w miejscach [3, 6]
split_arrays = np.split(arr, [3, 6])

for sub_array in split_arrays:
    print(sub_array)

Wynik:

[1 2 3]
[4 5 6]
[7 8 9]

Podział tablicy wielowymiarowej

Funkcja numpy.split() działa również na tablicach wielowymiarowych. Poniżej dzielimy macierz 2D wzdłuż kolumn.


arr = np.array([[1, 2, 3], 
                [4, 5, 6]])

# Podział wzdłuż kolumn (oś 1)
split_arrays = np.split(arr, 3, axis=1)

for sub_array in split_arrays:
    print(sub_array)

Wynik:

[[1]
 [4]]
[[2]
 [5]]
[[3]
 [6]]

Alternatywa: numpy.array_split()

Jeśli chcemy podzielić tablicę na nierówne sekcje bez problemu z błędem podziału, możemy użyć numpy.array_split(), które nie wymaga równych fragmentów.


arr = np.array([1, 2, 3, 4, 5, 6, 7])

split_arrays = np.array_split(arr, 3)

for sub_array in split_arrays:
    print(sub_array)

Wynik:

[1 2 3]
[4 5]
[6 7]

Podsumowanie

Funkcja numpy.split() w języku Python jest niezwykle przydatna w pracy z danymi w formie tablic NumPy. Oto najważniejsze aspekty jej działania:

Parametr Opis
numpy.split(ary, indices_or_sections) Podział tablicy na równe fragmenty
numpy.split(ary, [idx1, idx2]) Podział w nieregularnych punktach
numpy.split(ary, n, axis) Podział wzdłuż wskazanej osi
numpy.array_split() Podział na nierówne części

Dzięki tej funkcji możemy efektywnie manipulować tablicami NumPy, zwłaszcza w analizie danych i przygotowaniu ich do dalszego przetwarzania.

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