
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.
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.