Python 三维阵列的numpy.dstack?
对于二维阵列,效果与预期一样,但由于某些原因,对于三维阵列,它不会按最后一个维度堆叠 对于ND数组,按最后一个维度进行堆栈的正确方法是什么 例如:Python 三维阵列的numpy.dstack?,python,numpy,Python,Numpy,对于二维阵列,效果与预期一样,但由于某些原因,对于三维阵列,它不会按最后一个维度堆叠 对于ND数组,按最后一个维度进行堆栈的正确方法是什么 例如: import numpy as np #2D a = np.zeros((2,2,1)) a.shape (2, 2, 1) np.dstack([a] * 3).shape (2, 2, 3) #3D b = np.zeros((8,2,2,1)) b.shape (8, 2, 2, 1) np.dstack([b] * 3).shape (
import numpy as np
#2D
a = np.zeros((2,2,1))
a.shape
(2, 2, 1)
np.dstack([a] * 3).shape
(2, 2, 3)
#3D
b = np.zeros((8,2,2,1))
b.shape
(8, 2, 2, 1)
np.dstack([b] * 3).shape
(8, 2, 6, 1)
如果您想对数组自身进行堆栈(如示例中所示),可以使用np.repeat
b = np.zeros((8,2,2,1))
n_stacks = 3
np.repeat(b, n_stacks, axis=b.ndim-1).shape
(8, 2, 2, 3)
如果要沿最后一个维度堆叠两个不同的数组,可以使用np.concatenate
b = np.zeros((8,2,2,1))
c = np.ones((8,2,2,1))
np.concatenate((b,c),axis=b.ndim-1).shape
(8, 2, 2, 2)
如果您想对数组自身进行堆栈(如示例中所示),可以使用np.repeat
b = np.zeros((8,2,2,1))
n_stacks = 3
np.repeat(b, n_stacks, axis=b.ndim-1).shape
(8, 2, 2, 3)
如果要沿最后一个维度堆叠两个不同的数组,可以使用np.concatenate
b = np.zeros((8,2,2,1))
c = np.ones((8,2,2,1))
np.concatenate((b,c),axis=b.ndim-1).shape
(8, 2, 2, 2)
np.com与axois
parameter@hpaulj次要输入错误:np.连接
和轴
。np.dstack沿第三维连接<代码>np.comcatenate
与Axisparameter@hpaulj次要输入错误:np.连接
和轴
。np.dstack沿第三维连接。