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 docs .
- 返回:
- yndarray
输入的向量-矩阵积.
- Raises:
- 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.])