Numpy: Multiplying a matrix with a 3d tensor — Suggestion

后端 未结 2 1551
醉梦人生
醉梦人生 2020-12-09 19:11

I have a matrix P with shape MxN and a 3d tensor T with shape KxNxR. I want to multiply P with every N

相关标签:
2条回答
  • 2020-12-09 19:43

    You could also use Einstein summation notation:

    P = numpy.random.randint(1,10,(5,3))
    P.shape
    T = numpy.random.randint(1,10,(2,3,4))
    T.shape
    
    numpy.einsum('ij,kjl->kil',P,T)
    

    which should give you the same results as:

    P.dot(T).transpose(1,0,2)
    
    0 讨论(0)
  • 2020-12-09 19:51
    scipy.tensordot(P, T, axes=[1,1]).swapaxes(0,1)
    
    0 讨论(0)
提交回复
热议问题