在numpy中合并矩阵
假设我有三个“表格”,分别叫做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