如何使用numpy将向量与数组中的一组向量进行点积运算?

时间:2019-03-10 19:37:08

标签: numpy-ndarray numpy-broadcasting

给定一个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循环。

2 个答案:

答案 0 :(得分:1)

使用np.dot()

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

答案 1 :(得分:0)

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

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