如何使用 numpy 计算一个向量与数组中一组向量的点积?

How to do dot product of a vector with a set of vectors in an array using numpy?

给定一个 N×M 数组 W 和一个大小为 N 的向量 V,我如何对 W 的每一列进行点积 V,从而得到一个大小为 M 的一维数组 D 和 D 的每个元素由 V 和 W[:,i] 的点积组成。

所以像

V = np.random.int(N)
W = np.random.int((N,M))
D = np.zeros(M)
for i in np.arange(M):
    D[i] = dotproduct(V,W[:,i])

有没有办法只使用 numpy 数组和 numpy 函数来做到这一点?我想避免使用 for 循环。

使用 numpy 广播,您可以简单地将向量 V 和矩阵 W 相乘

V = np.random.randint(N)
W = np.random.randint((N,M))
D = np.sum(V.T*W,axis=0)

使用np.dot()

v = np.random.randint(3,size = 3)
w =np.random.randint(9, size = (3,3))
np.dot(v,w)