Numpy dstack() 函数
Numpy dstack() 函数用于按深度顺序(沿第三轴)堆叠数组。此函数是 numpy 模块的一部分。它对于堆叠多个数组以创建三维数组非常有用,其中每个输入数组都成为第三维度上的一个层。
例如,堆叠两个形状相同的二维数组将生成一个高度和宽度与输入数组相同的三维数组,其深度等于堆叠数组的数量。
在 numpy.dstack() 函数中,如果输入数组在第一轴或第二轴上的形状不同,则会引发 ValueError。
语法
以下是 Numpy dstack() 函数的语法 -
numpy.dstack(arrays)
参数
以下是Numpy dstack() 函数 -
- 数组 - 要堆叠的数组序列。数组必须沿第一和第二个轴具有相同的形状。
返回值
该函数返回一个具有新深度维度的三维数组,该维度沿第三个轴组合了所有输入数组。
示例
以下是使用 Numpy dstack() 深度堆叠两个一维数组的基本示例 -
import numpy as np array1 = np.array([1, 2, 3]) array2 = np.array([4, 5, 6]) dstacked_array = np.dstack((array1, array2)) print("Array 1 -", array1) print("Array 2 -", array2) print("Depth-wise Stacked Array - ", dstacked_array)
输出
以下是上述代码的输出 -
Array 1 - [1 2 3] Array 2 - [4 5 6] Depth-wise Stacked Array - [[[1 4] [2 5] [3 6]]]
示例 - 深度堆叠二维数组
在以下示例中,我们使用 numpy.dstack() 将两个二维数组深度堆叠,从而创建一个三维数组。每个输入数组的形状为 (2, 3),生成的数组的形状为 (2, 3, 2) −
import numpy as np array1 = np.array([[10, 20, 30], [40, 50, 60]]) array2 = np.array([[70, 80, 90], [100, 110, 120]]) dstacked_array = np.dstack((array1, array2)) print("数组 1 - ", array1) print("数组 2 - ", array2) print("深度堆叠数组 - ", dstacked_array) print("深度堆叠数组的形状 -", dstacked_array.shape)
输出
以下是上述代码的输出 -
数组 1 - [[10 20 30] [40 50 60]] 数组 2 - [[ 70 80 90] [100 110 120]] 深度堆叠数组 - [[[ 10 70] [ 20 80] [ 30 90]] [[ 40 100] [ 50 110] [ 60 120]]] 深度堆叠数组的形状 - (2, 3, 2)
示例 - 堆叠不同形状的数组
输入数组在前两个轴上必须具有相同的形状。如果不一致,numpy.dstack() 将引发 ValueError。在以下示例中,我们尝试堆叠形状不兼容的数组 -
import numpy as np array1 = np.array([[1, 2], [3, 4]]) array2 = np.array([[5, 6, 7], [8, 9, 10]]) try: dstacked_array = np.dstack((array1, array2)) print(dstacked_array) except ValueError as e: print("ValueError:", e)
输出
以下是上述代码的输出 -
ValueError: all the input array dimensions except for the concatenation axis must match exactly