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
結果儲存的位置。如果提供,則它必須具有 x1 和 x2 的廣播形狀,並移除最後一個軸。如果未提供或為 None,則會使用新配置的陣列。
- **kwargs
對於其他僅限關鍵字引數,請參閱 ufunc 文件。
- 傳回值:
- yndarray
輸入的向量點積。只有當 x1、x2 都是 1 維向量時,這才是純量。
- 引發:
- ValueError
如果 x1 的最後一個維度大小與 x2 的最後一個維度大小不同。
如果傳入純量值。
範例
>>> 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.])