[英]Batch dot product with numpy?
我需要用一个向量获得许多向量的点积。 示例代码:
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)
这使:
[5, 17, 2, 0]
我如何不进行迭代就得到它? 谢谢!
我会做@
b@a
Out[108]: array([ 5, 17, 2, 0])
使用不带for
循环的numpy.dot
或numpy.matmul
:
import numpy as np
np.matmul(b, a)
# or
np.dot(b, a)
输出:
array([ 5, 17, 2, 0])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.