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。