簡體   English   中英

用numpy批處理點產品?

[英]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.dotnumpy.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM