numpy.vecmat#

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

兩個陣列的向量-矩陣點積。

給定 x1 中的向量(或向量堆疊)\(\mathbf{v}\)x2 中的矩陣(或矩陣堆疊)\(\mathbf{A}\),向量-矩陣乘積定義為

\[\mathbf{b} \cdot \mathbf{A} = \sum_{i=0}^{n-1} \overline{v_i}A_{ij}\]

其中總和遍及 x1 的最後一個維度和 x2 的倒數第二個維度(除非指定 axes),且 \(\overline{v_i}\) 表示複共軛(如果 \(v\) 是複數),否則為單位矩陣。(對於非共軛向量-矩陣乘積,請使用 np.matvec(x2.mT, x1)。)

在 2.2.0 版本中新增。

參數:
x1, x2array_like

輸入陣列,不允許純量。

outndarray, optional

結果儲存的位置。如果提供,則其形狀必須是廣播後的 x1x2,並移除求和軸。如果未提供或為 None,則會使用新分配的陣列。

**kwargs

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

傳回值:
yndarray

輸入的向量-矩陣乘積。

引發:
ValueError

如果 x1 的最後一個維度和 x2 的倒數第二個維度大小不同。

如果傳入純量值。

另請參閱

vecdot

向量-向量乘積。

matvec

矩陣-向量乘積。

matmul

矩陣-矩陣乘積。

einsum

愛因斯坦求和約定。

範例

沿著 X 和 Y 軸投影向量。

>>> v = np.array([0., 4., 2.])
>>> a = np.array([[1., 0., 0.],
...               [0., 1., 0.],
...               [0., 0., 0.]])
>>> np.vecmat(v, a)
array([ 0.,  4., 0.])