
Jednym z przydatnych narzędzi oferowanych przez bibliotekę NumPy w języku Python jest funkcja numpy.dstack(). Jest to funkcja, która umożliwia łączenie tablic w trzecim wymiarze, czyli wzdłuż osi głębokości. Jeśli kiedykolwiek miałeś problem z organizowaniem danych w macierzach trójwymiarowych, to warto poznać ten mechanizm.
Co to jest numpy.dstack()?
Funkcja numpy.dstack() służy do konstruowania tablic trójwymiarowych z dwóch (lub więcej) tablic dwuwymiarowych. Łączy ona dostarczone tablice wzdłuż osi o indeksie 2, czyli po „głębokości” (ang. depth).
Pod względem działania można ją porównać do numpy.hstack(), który łączy tablice wzdłuż osi poziomej, oraz numpy.vstack(), który działa w osi pionowej. Jednak numpy.dstack() jest szczególnie przydatne w pracy z danymi obrazowymi czy analizą numeryczną wielowymiarowych struktur.
Podstawowy przykład użycia numpy.dstack()
Spójrzmy na prosty przykład, aby zobaczyć, jak działa numpy.dstack() w praktyce:
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
result = np.dstack((a, b))
print(result)
Wynik:
array([[[1, 5],
[2, 6]],
[[3, 7],
[4, 8]]])
Widzimy, że dwie tablice o wymiarach 2×2 zostały połączone wzdłuż trzeciej osi, tworząc trójwymiarową tablicę o wymiarach 2x2x2.
Wizualizacja działania numpy.dstack()
Aby lepiej zrozumieć, jak funkcja działa, spójrzmy na dane w postaci tabelarycznej.
| Tablica A | Tablica B | Połączony wynik |
|---|---|---|
1 2 3 4 |
5 6 7 8 |
[[1, 5], [2, 6]] [[3, 7], [4, 8]] |
Jak widać, elementy z obu tablic są układane warstwowo w nowym wymiarze.
Co się stanie, jeśli podamy więcej tablic?
Możemy przekazywać więcej niż dwie tablice, pod warunkiem że mają odpowiednie wymiary. Zobaczmy to na przykładzie:
c = np.array([[9, 10], [11, 12]])
result = np.dstack((a, b, c))
print(result)
Wynik:
array([[[ 1, 5, 9],
[ 2, 6, 10]],
[[ 3, 7, 11],
[ 4, 8, 12]]])
Jak możemy zauważyć, trzecia tablica została dodana jako kolejna warstwa do istniejącej struktury.
Zastosowania numpy.dstack()
Funkcja numpy.dstack() znajduje zastosowanie w wielu dziedzinach, takich jak:
- Przetwarzanie obrazów – np. łączenie kanałów RGB do trójwymiarowej macierzy.
- Analiza danych – organizowanie informacji w trójwymiarowych tabelach.
- Modelowanie 3D – obsługa danych w strukturach wielu wymiarów.
- Obróbka danych numerycznych – grupowanie macierzy w jedną logiczną strukturę.
Porównanie numpy.dstack() z innymi metodami łączenia tablic
Aby lepiej zobrazować różnicę pomiędzy funkcją dstack() a innymi funkcjami łączenia tablic, spójrzmy na poniższe zestawienie:
| Funkcja | Opis | Przykładowy wynik |
|---|---|---|
numpy.hstack() |
Łączy tablice poziomo (wzdłuż osi 1). |
[[1, 2, 5, 6], [3, 4, 7, 8]] |
numpy.vstack() |
Łączy tablice pionowo (wzdłuż osi 0). |
[[1, 2], [3, 4], [5, 6], [7, 8]] |
numpy.dstack() |
Łączy tablice wzdłuż głębokości (w osi 2). |
[[[1, 5], [2, 6]], [[3, 7], [4, 8]]] |
Podsumowanie
Funkcja numpy.dstack() to świetne narzędzie do łączenia tablic w trzecim wymiarze. Dzięki niej można w łatwy sposób organizować dane w struktury trójwymiarowe, co jest szczególnie przydatne w analizie numerycznej i przetwarzaniu obrazów. Jeśli potrzebujesz operacji łączenia macierzy wzdłuż głębokości, to właśnie ta funkcja jest dla Ciebie najlepszym rozwiązaniem.
Inny ciekawy artykuł:
Jak działa numpy hstack 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.

