我有维度MxNxH的数组A
和B
。
我想定义一个二元运算符,以“乘法”,结果是MxN维。
等效操作是:
C = A[:,:,0] * B[:,:,0] + A[:,:,1] * B[:,:,1] + .... + A[:,:,H] * B[:,:,H]
有没有办法以更有效的方式进行此操作? 例如,在numpy中使用内置函数?
我尝试了tensordot
,但这会产生不同的结果。
答案 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)