3D数组乘法

时间:2012-11-15 22:13:49

标签: python arrays numpy

我有维度MxNxH的数组AB

我想定义一个二元运算符,以“乘法”,结果是MxN维。

等效操作是:

C = A[:,:,0] * B[:,:,0] + A[:,:,1] * B[:,:,1] + .... + A[:,:,H] * B[:,:,H]

有没有办法以更有效的方式进行此操作? 例如,在numpy中使用内置函数?

我尝试了tensordot,但这会产生不同的结果。

2 个答案:

答案 0 :(得分:2)

最简单的是:

C = numpy.sum(A * B, -1)

我认为这也可能有用:

C = numpy.einsum("...i,...i->...", A, B)

答案 1 :(得分:1)

试试这个:numpy.sum(A * B,轴= 2)

这与其他建议类似,但可能更清晰(轴从0编号,因此轴= 2是第3轴或H出MxNxH)

相关问题