在numpy中合并矩阵

2 投票
2 回答
1701 浏览
提问于 2025-04-15 17:12

假设我有三个“表格”,分别叫做a、b和c,它们的尺寸都是mnp。现在我想把这三个表格合并成一个新的表格,尺寸是mnp*3。这个新表格的每个元素(i,j,k)应该是由a、b和c对应位置的元素组合而成,也就是(a[i,j,k], b[i,j,k], c[i,j,k])。请问我应该使用哪个命令呢?dstack命令在这里似乎不太管用。谢谢。

2 个回答

2

我觉得你想要的是:

np.concatenate([np.expand_dims(x, -1) for x in (a, b, c)], axis=3)
4

还有一个简单的一行代码可以这样写:

result = numpy.array( (a,b,c) ).transpose( (1,2,3,0) )

或者你可以用一种更容易理解的方法:

result = empty( (m,n,p,3) )
result[:,:,:,0] = a
result[:,:,:,1] = b
result[:,:,:,2] = c

撰写回答