
Funkcja numpy.vsplit() to jedno z narzędzi biblioteki NumPy, które pozwala w łatwy sposób dzielić tablice. Skupia się ona na podziale wzdłuż osi pionowej, co czyni ją przydatną w wielu operacjach na macierzach. W tym artykule pokażę, jak działa numpy.vsplit() w języku Python i przedstawię konkretny przykład zastosowania.
Czym jest numpy.vsplit()?
Funkcja numpy.vsplit() należy do grupy funkcji podziału tablic w NumPy. Jest szczególnym przypadkiem funkcji numpy.split(), z tą różnicą, że działa wyłącznie na osi pionowej (oś 0).
Oto niezwykle prosty przykład użycia funkcji:
import numpy as np
# Tworzymy przykładową macierz 6x4
array = np.arange(24).reshape(6, 4)
# Dzielimy macierz na 3 równe części w pionie
result = np.vsplit(array, 3)
for subarray in result:
print(subarray)
W wyniku działania tego kodu otrzymamy trzy podmacierze, każda mająca 2 wiersze i 4 kolumny.
Jak działa numpy.vsplit() w języku Python?
Funkcja numpy.vsplit() działa w prosty sposób:
- Oczekuje dwóch argumentów: tablicy NumPy oraz liczby określającej, na ile części chcemy ją podzielić.
- Podział następuje wzdłuż pionowej osi (oś 0).
- Tablica wejściowa musi być podzielna równomiernie – liczba wierszy musi być wielokrotnością liczby części.
Jeśli próbujemy podzielić macierz o nieparzystej liczbie wierszy na części o nierównych wymiarach, funkcja zwróci błąd.
Przykład zastosowania numpy.vsplit()
Jednym z popularnych zastosowań numpy.vsplit() jest wstępne przetwarzanie danych, np. dzielenie zbioru danych na mniejsze podzbiory.
Załóżmy, że mamy macierz reprezentującą piksele obrazu i chcemy podzielić ją na kilka poziomych sekcji do analizy.
import numpy as np
# Tworzymy macierz 8x6, która może np. reprezentować fragment obrazu
image_section = np.arange(48).reshape(8, 6)
# Dzielimy obraz na 4 sekcje pionowe (każda po 2 wiersze)
sections = np.vsplit(image_section, 4)
for idx, sec in enumerate(sections):
print(f"Sekcja {idx + 1}:\n", sec, "\n")
W wyniku tego działania otrzymamy 4 sekcje, po 2 wiersze każda, które mogą być dalej niezależnie analizowane.
Porównanie numpy.vsplit() z numpy.hsplit()
W niektórych przypadkach lepszym rozwiązaniem może być numpy.hsplit(), który wykonuje operację odwrotną – dzieli tablicę w poziomie. Poniżej znajduje się tabela porównawcza:
| Funkcja | Oś podziału | Typowe zastosowanie |
|---|---|---|
| numpy.vsplit() | Oś pionowa (0) | Podział danych wzdłuż wierszy |
| numpy.hsplit() | Oś pozioma (1) | Podział danych na kolumny |
Najczęstsze błędy i sposoby ich rozwiązania
Choć numpy.vsplit() jest łatwa w użyciu, istnieją pewne pułapki, na które warto zwrócić uwagę:
- Nierównomierny podział: NumPy nie pozwoli podzielić tablicy, jeśli liczba wierszy nie jest podzielna przez liczbę części.
- Podział jednowymiarowej tablicy: Jeśli próbujesz użyć
numpy.vsplit()na wektorze, otrzymasz błąd – działa ona wyłącznie na macierzach 2D. - Zła liczba części: Jeśli podasz liczbę większą od liczby wierszy w tablicy, otrzymasz puste macierze w wyniku.
Podsumowanie
Funkcja numpy.vsplit() to potężne narzędzie do manipulacji tablicami NumPy. Pozwala w prosty sposób podzielić macierz wzdłuż pionowej osi, co może być przydatne np. w obróbce obrazów, podziale zbiorów danych oraz w analizie macierzowej. Pamiętając o jej ograniczeniach oraz różnicy w stosunku do numpy.hsplit(), możemy skutecznie wykorzystywać numpy.vsplit() w naszych projektach.
Inny ciekawy artykuł:
Jak działa numpy hsplit w języku Python? Przykład zastosowania
Opanuj analizę danych w Pythonie z moim kursem!
Opanujesz podstawy programowania w Pythonie, w tym typy danych, zmienne, listy, słowniki, funkcje oraz obsługę błędów. Nauczysz się korzystać z biblioteki pandas do zaawansowanej analizy danych i pracy z różnymi rodzajami danych. Zrozumiesz proces analizy, eksploracji (EDA) i wizualizacji. Tworzenie własnych funkcji przygotuje Cię do rozmów kwalifikacyjnych i rozwiązywania rzeczywistych problemów biznesowych.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, PowerBI, Tableau i Pythona z certyfikatami!
🟨 Ekskluzywana ale pomagająca sobie społeczność.
🟩 Ponad 75 godzin materiałów video.
🟨 Spotkania LIVE co miesiąc.
🟩 Mój osobisty mentoring.

