NumPy dstack()

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。

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战