将矩阵连接到张量

时间:2015-06-23 14:38:48

标签: python numpy

我有两个(或有时更多)矩阵,我想将它们组合成一个张量。矩阵,例如具有形状(100,400),当它们组合时,它们应具有尺寸(2,100,400)。

我该怎么做?我尝试它的方式与从矢量创建矩阵的方式相同,但这不起作用:

tensor = numpy.concatenate(list_of_matrixes, axis=0)

2 个答案:

答案 0 :(得分:2)

可能你想要

tensor = np.array(list_of_matrices)

答案 1 :(得分:2)

np.array([...])只是喜欢将输入组合到新轴上的新阵列中。事实上,它需要一些努力来防止这种情况。:))

要使用concatenate,您需要为数组添加轴。 axis=0表示'加入当前第一轴',因此它会生成一个(200,400)数组。

np.concatentate([arr1[None,...], arr2[None,...], axis=0)

可以做到这一点,或者更普遍的是

np.concatenate([arr[None,...] for arr in list_arr], axis=0)

如果您查看dstackhstackvstack的代码,您会看到他们在将任务传递给concatenate之前执行此类维度调整。

np.array解决方案很简单,但是连接解决方​​案是一个很好的学习机会。