Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用numpy将一个向量与数组中的一组向量进行点积?_Python_Numpy_Numpy Ndarray_Array Broadcasting - Fatal编程技术网

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

Python 如何使用numpy将一个向量与数组中的一组向量进行点积?,python,numpy,numpy-ndarray,array-broadcasting,Python,Numpy,Numpy Ndarray,Array 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循环。使用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)