numpy.matvec#

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

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

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

\[\mathbf{A} \cdot \mathbf{b} = \sum_{j=0}^{n-1} A_{ij} v_j\]

其中總和遍及 x1x2 中的最後維度(除非指定 axes)。 (對於向量共軛的矩陣向量積,請使用 np.vecmat(x2, x1.mT)。)

2.2.0 版本新增。

參數:
x1, x2array_like

輸入陣列,不允許純量。

outndarray,可選

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

**kwargs

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

返回:
yndarray

輸入的矩陣向量積。

引發:
ValueError

如果 x1x2 的最後維度大小不同。

如果傳入純量值。

參見

vecdot

向量向量積。

vecmat

向量矩陣積。

matmul

矩陣矩陣積。

einsum

愛因斯坦求和約定。

範例

沿 Z 軸將一組向量從 Y 旋轉到 X。

>>> a = np.array([[0., 1., 0.],
...               [-1., 0., 0.],
...               [0., 0., 1.]])
>>> v = np.array([[1., 0., 0.],
...               [0., 1., 0.],
...               [0., 0., 1.],
...               [0., 6., 8.]])
>>> np.matvec(a, v)
array([[ 0., -1.,  0.],
       [ 1.,  0.,  0.],
       [ 0.,  0.,  1.],
       [ 6.,  0.,  8.]])