如何使用 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)
给定一个 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)