
Jeśli kiedykolwiek pracowałeś z biblioteką NumPy w Pythonie, zapewne zdarzyło Ci się manipulować tablicami (ang. arrays). Czasami pojawia się potrzeba łączenia kilku tablic w jedną większą – i tutaj z pomocą przychodzi funkcja numpy.vstack()
. W tym artykule wyjaśnię, jak działa numpy vstack w języku Python i pokażę jego praktyczne zastosowanie.
Czym jest numpy.vstack()?
Funkcja numpy.vstack()
pochodzi z biblioteki NumPy i służy do pionowego łączenia (stosowania) tablic. Oznacza to, że kolejne tablice przekazane do funkcji są dołączane jedna pod drugą, co sprawia, że wynikowa tablica ma większą liczbę wierszy.
Składnia funkcji numpy.vstack()
Oto podstawowa składnia tej funkcji:
numpy.vstack((array1, array2, ...))
Gdzie:
array1, array2, ...
– tablice, które chcemy połączyć pionowo. Muszą mieć tę samą liczbę kolumn.
Przykład zastosowania numpy.vstack()
Zobaczmy, jak działa numpy.vstack()
na prawdziwym przykładzie:
import numpy as np
# Tworzymy dwie tablice NumPy
array1 = np.array([[1, 2, 3], [4, 5, 6]])
array2 = np.array([[7, 8, 9], [10, 11, 12]])
# Łączenie tablic pionowo
result = np.vstack((array1, array2))
print(result)
Wynik działania kodu będzie wyglądał tak:
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]
Jak widać, obie tablice zostały połączone wzdłuż pierwszej osi (rzędy zostały połączone jeden pod drugim).
Kiedy warto używać numpy.vstack()?
Funkcja numpy.vstack()
jest przydatna w wielu sytuacjach, np.:
- Gdy mamy dane przechowywane w osobnych tablicach i chcemy stworzyć pojedynczą macierz do dalszych obliczeń.
- Podczas przetwarzania danych w uczeniu maszynowym, np. łączenia danych treningowych i testowych.
- W analizie statystycznej, kiedy potrzebujemy skonsolidować wielokrotne pomiary do jednej macierzy.
Co się stanie, jeśli liczba kolumn nie będzie zgodna?
NumPy nie pozwala na łączenie tablic o różnych liczbach kolumn. Spróbujmy zobaczyć, co się stanie, jeśli spróbujemy połączyć tablice o różnych wymiarach:
import numpy as np
array1 = np.array([[1, 2, 3], [4, 5, 6]])
array2 = np.array([[7, 8]])
# Próba połączenia tablic o różnych wymiarach
result = np.vstack((array1, array2))
To spowoduje błąd:
ValueError: all the input arrays must have the same number of columns
Dlatego zawsze upewnij się, że wszystkie tablice przekazane do numpy.vstack()
mają taką samą liczbę kolumn.
Alternatywy dla numpy.vstack()
Jeśli chcesz łączyć tablice w inny sposób, oto kilka alternatyw:
numpy.hstack()
– poziome łączenie tablic (dodawanie kolumn).numpy.concatenate()
– elastyczna funkcja łączenia tablic, pozwalająca określić oś.numpy.column_stack()
– podobne dohstack()
, ale działa na jednowymiarowych tablicach.
Oto szybkie porównanie:
Funkcja | Sposób łączenia |
---|---|
vstack() |
Łączenie pionowe (dodawanie wierszy) |
hstack() |
Łączenie poziome (dodawanie kolumn) |
concatenate() |
Łączenie wzdłuż dowolnej osi |
Podsumowanie
Teraz wiesz, jak działa numpy vstack w języku Python i kiedy warto go używać. To potężna funkcja, która pozwala szybko i wygodnie łączyć tablice NumPy wzdłuż osi pionowej. Kluczowe jest jednak to, aby tablice miały tę samą liczbę kolumn. W przeciwnym razie napotkamy błąd.
Jeśli pracujesz z danymi i często łączysz macierze, znajomość numpy.vstack()
może znacznie ułatwić Ci życie. Mam nadzieję, że teraz będziesz czuł się pewniej, korzystając z tej funkcji!
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, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.