1

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

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]

我怎样才能在不迭代的情况下得到这个?谢谢!

4

2 回答 2

1

使用numpy.dotnumpy.matmul不使用for循环:

import numpy as np

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

输出:

array([ 5, 17,  2,  0])
于 2019-06-18T01:53:48.813 回答
1

我会做的@

b@a
Out[108]: array([ 5, 17,  2,  0])
于 2019-06-18T02:10:36.650 回答