dstack() 方法沿深度方向堆叠输入数组序列。
示例
import numpy as np
array1 = np.array([[0, 1], [2, 3]])
array2 = np.array([[4, 5], [6, 7]])
# stack the arrays
stackedArray = np.dstack((array1, array2))
print(stackedArray)
'''
Output
[[[0 4]
[1 5]]
[[2 6]
[3 7]]]
'''
dstack() 语法
dstack() 的语法是
numpy.dstack(tup)
dstack() 参数
dstack() 方法接受一个参数
tup- 要堆叠的数组的元组
注意:给定元组中所有数组的形状必须相同,第三个维度除外,因为我们是沿轴 2(深度方向)进行堆叠。
dstack() 返回值
dstack() 方法返回深度堆叠的数组。
示例 1:沿深度方向堆叠不同形状的数组
import numpy as np
# 3-D array with shape (2,2,2)
array1 = np.array([[[0, 1], [2,3]],
[[4, 5], [6, 7]]])
# 3-D array with shape (2,2,1)
array2 = np.array([[[4], [5]],
[[6], [7]]])
# stack the arrays
stackedArray = np.dstack((array1, array2))
print(stackedArray)
输出
[[[0 1 4] [2 3 5]] [[4 5 6] [6 7 7]]]
这里,我们堆叠了 2 个不同形状的数组。
array2 的形状是 (2, 2, 1),但我们仍然可以将其与形状为 (2, 2, 2) 的 array1 堆叠,因为 array2 的第三个维度与 array1 不同。
示例 2:沿深度方向堆叠形状无效的数组
import numpy as np
array1 = np.array([[[0, 1], [2,3]],
[[4, 5], [6, 7]]])
array2 = np.array([[[4], [5], [6]],
[[7], [8], [9]]])
# stack the arrays with invalid shapes
stackedArray = np.dstack((array1, array2))
print(stackedArray)
输出
ValueError: all the input array dimensions except for the concatenation axis must match exactly, but along dimension 1, the array at index 0 has size 2 and the array at index 1 has size 3
这里,array2 的形状是 (2, 3, 1),与形状为 (2, 2, 2) 的数组堆叠时会导致 ValueError。
