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{v} \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,可选

存储结果的位置。如果提供,它必须具有 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.])