
W pracy z biblioteką NumPy często muszę łączyć tablice wzdłuż różnych osi. Jedną z najwygodniejszych funkcji do poziomego łączenia tablic jest numpy.hstack()
. W tym artykule pokażę, jak działa numpy hstack w języku Python i przedstawię przykład zastosowania tej funkcji.
Czym jest numpy.hstack()
?
Funkcja numpy.hstack()
służy do poziomego łączenia (horyzontalnego stosu) wielu tablic. Oznacza to, że tablice są sklejane wzdłuż drugiego wymiaru (oś 1 w przypadku tablic dwuwymiarowych).
numpy.hstack(tup)
Gdzie:
tup
– krotka zawierająca tablice NumPy do połączenia.
Jak działa numpy.hstack()
?
Weźmy prosty przykład, w którym mamy dwie dwuwymiarowe tablice i chcemy je połączyć poziomo:
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[7, 8, 9], [10, 11, 12]])
result = np.hstack((a, b))
print(result)
Wynik:
[[ 1 2 3 7 8 9]
[ 4 5 6 10 11 12]]
Jak widzisz, tablica b
została dołączona do tablicy a
poziomo, co oznaczało scalanie elementów wzdłuż kolumn.
Kiedy mogę użyć numpy.hstack()
?
Ta funkcja sprawdza się w wielu scenariuszach, takich jak:
- Łączenie wyników obliczeń w jedną tablicę.
- Dodawanie nowych cech do macierzy danych (np. w analizie danych, ML).
- Tworzenie nowych zbiorów danych poprzez łączenie istniejących.
Wymagania co do wymiarów tablic
Aby numpy.hstack()
działało poprawnie, tablice muszą mieć zgodne wymiary wzdłuż osi 0 (wiersze). W przeciwnym razie wystąpi błąd.
Przykładowo, kod poniżej spowoduje błąd, ponieważ liczba wierszy się nie zgadza:
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6, 7]])
np.hstack((a, b)) # Błąd!
Alternatywy dla numpy.hstack()
Jeśli numpy.hstack()
nie spełnia Twoich oczekiwań, możesz użyć innych metod:
numpy.concatenate()
– bardziej elastyczna funkcja pozwalająca określić, wzdłuż której osi łączyć tablice.numpy.column_stack()
– przydatna do łączenia tablic jednowymiarowych w kolumny.numpy.hstack()
– niemal równoważna znumpy.concatenate()
z parametremaxis=1
.
Przykład zamiany numpy.hstack()
na numpy.concatenate()
:
np.concatenate((a, b), axis=1)
Porównanie numpy.hstack()
z innymi metodami łączenia tablic
Metoda | Opis | Użycie |
---|---|---|
numpy.hstack() |
Łączy tablice poziomo (oś 1). | np.hstack((a, b)) |
numpy.vstack() |
Łączy tablice pionowo (oś 0). | np.vstack((a, b)) |
numpy.concatenate() |
Łączy tablice wzdłuż dowolnej osi. | np.concatenate((a, b), axis=1) |
numpy.column_stack() |
Łączy jednowymiarowe tablice w kolumny. | np.column_stack((a, b)) |
Podsumowanie
Wiesz już, jak działa numpy hstack w języku Python i masz przykład zastosowania tej funkcji. Jest to wygodne narzędzie do poziomego łączenia tablic, pod warunkiem, że ich liczba wierszy jest zgodna. Jeśli potrzebujesz innego rodzaju łączenia, warto rozważyć alternatywne metody, takie jak numpy.vstack()
czy numpy.concatenate()
.
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.