2013-03-25 91 views
1

我想添加一个矩阵的张量。如何在numpy中沿轴添加

这工作

numpy.zeros((4,4,4))+numpy.sum(numpy.ones((4,4,4)),axis=2) 

这是行不通的。

numpy.zeros((3,4,5))+numpy.sum(numpy.ones((3,4,5)),axis=2) 
ValueError: operands could not be broadcast together with shapes (3,4,5) (3,4) 

如何获得第二个示例工作?我想沿第三轴添加。

回答

3

Broadcast

numpy.zeros((3,4,5))+numpy.sum(numpy.ones((3,4,5)),axis=2)[...,None] 
+0

如果我想沿轴= 1增加,那会是什么? – siamii 2013-03-25 13:16:59

+1

'numpy.zeros((3,4,5))+ numpy.sum(numpy.ones((3,4,5)),axis = 1)[:,无,:]'。相当于我的原始答案是'numpy.zeros((3,4,5))+ numpy.sum(numpy.ones((3,4,5)),axis = 2)[:,:,, None]' – YXD 2013-03-25 13:20:48

+2

虽然更详细,但可能更清楚地写'np.newaxis'而不是'None'来添加轴('np.newaxis是None == True')。 – jorgeca 2013-03-25 14:41:03