用numpy批处理点产品?

时间:2019-06-18 01:48:34

标签: python numpy tensordot

我需要获得一个向量的许多向量的点积。示例代码:

Desktop development with C++

我想得到a = np.array([0, 1, 2]) b = np.array([ [0, 1, 2], [4, 5, 6], [-1, 0, 1], [-3, -2, 1] ]) b的每一行的点积。我可以迭代:

a

给出:

result = [] for row in b: result.append(np.dot(row, a)) print(result)

如何在不进行迭代的情况下获得此?谢谢!

2 个答案:

答案 0 :(得分:2)

我只会做@

b@a
Out[108]: array([ 5, 17,  2,  0])

答案 1 :(得分:1)

在没有numpy.dot循环的情况下使用numpy.matmulfor

import numpy as np

np.matmul(b, a)
# or
np.dot(b, a)

输出:

array([ 5, 17,  2,  0])