【问题标题】:Einstein notation for numpy dot productnumpy 点积的爱因斯坦符号
【发布时间】:2019-08-06 19:17:40
【问题描述】:

如何使用爱因斯坦符号编写以下点积?

import numpy as np
LHS = np.ones((5,20,2))
RHS = np.ones((20,2))
np.sum([
    np.dot(LHS[:,:,0], RHS[:,0]),
    np.dot(LHS[:,:,1], RHS[:,1]),
], axis=0)

【问题讨论】:

    标签: numpy numpy-einsum


    【解决方案1】:

    那就是——

    np.einsum('ijk,jk->i',LHS,RHS)
    

    或者tensordot -

    np.tensordot(LHS,RHS,axes=((1,2),(0,1)))
    

    还有np.dot -

    LHS.reshape(LHS.shape[0],-1).dot(RHS.ravel())
    

    【讨论】:

      猜你喜欢
      • 2011-05-24
      • 2019-11-08
      • 1970-01-01
      • 2016-12-20
      • 2016-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多