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, 可选
存储结果的位置。如果提供,它必须具有
x1
和x2
的广播形状,并移除求和轴。如果不提供或为 None,则使用新分配的数组。- **kwargs
有关其他关键字参数,请参见ufunc 文档。
- 返回:
- yndarray
输入的向量-矩阵乘积。
- 引发:
- ValueError
如果
x1
的最后维度和x2
的倒数第二维度大小不同。如果传入标量值。
示例
沿 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.])