numpy.vecdot#

numpy.vecdot(x1, x2, /, out=None, *, casting='same_kind', order='K', dtype=None, subok=True[, signature, axes, axis]) = <ufunc 'vecdot'>#

兩個陣列的向量點積。

\(\mathbf{a}\)x1 中的向量,且 \(\mathbf{b}\)x2 中對應的向量。點積定義為

\[\mathbf{a} \cdot \mathbf{b} = \sum_{i=0}^{n-1} \overline{a_i}b_i\]

其中總和遍及最後一個維度(除非指定 axis),且 \(\overline{a_i}\) 表示複共軛,如果 \(a_i\) 是複數,否則為單位矩陣。

版本 2.0.0 新增。

參數:
x1, x2array_like

輸入陣列,不允許純量。

outndarray, optional

結果儲存的位置。如果提供,則它必須具有 x1x2 的廣播形狀,並移除最後一個軸。如果未提供或為 None,則會使用新配置的陣列。

**kwargs

對於其他僅限關鍵字引數,請參閱 ufunc 文件

傳回值:
yndarray

輸入的向量點積。只有當 x1、x2 都是 1 維向量時,這才是純量。

引發:
ValueError

如果 x1 的最後一個維度大小與 x2 的最後一個維度大小不同。

如果傳入純量值。

另請參閱

vdot

相同,但先展平引數

matmul

矩陣-矩陣乘積。

vecmat

向量-矩陣乘積。

matvec

矩陣-向量乘積。

einsum

愛因斯坦求和約定。

範例

>>> import numpy as np

取得向量陣列沿著給定法線的投影大小。

>>> v = np.array([[0., 5., 0.], [0., 0., 10.], [0., 6., 8.]])
>>> n = np.array([0., 0.6, 0.8])
>>> np.vecdot(v, n)
array([ 3.,  8., 10.])