首页 > 解决方案 > 向量与另一个矩阵中的每个向量的点积

问题描述

weight = np.array([[[ 0.38932115, -0.27430567]],

       [[-0.04543304, -0.05643598]],

       [[ 0.46912688, -0.07695298]]])

data = np.array([[-0.2056065,  0.7889058]])

like,

data = np.array([[1, 2, 3], [4, 5, 6]])

我想将数据中的行的点积与每行的权重相乘,我怎么能做到这一点?我尝试了 tensordot,但轴的工作方式似乎有点复杂/不明显。有没有更简单的方法?

标签: pythonnumpy

解决方案


data在取积之前先转置。

>>> weight.dot(data.T)
array([[[-0.29644829]],
       [[-0.03518134]],
       [[-0.15716419]]])

# Multiple rows of data.
data = np.array([[-0.2056065,  0.7889058],
                 [0.7889058, -.2056065]])

>>> weight.dot(data.T)
array([[[-0.29644829,  0.36353674]],
       [[-0.03518134, -0.02423878]],
       [[-0.15716419,  0.38591895]]])

推荐阅读