numpy.matvec#
- numpy.matvec(x1, x2, /, out=None, *, casting='same_kind', order='K', dtype=None, subok=True[, signature, axes, axis]) = <ufunc 'matvec'>#
两个数组的矩阵-向量点积.
给定一个矩阵(或矩阵堆栈) \(\mathbf{A}\) 在
x1中,以及一个向量(或向量堆栈) \(\mathbf{v}\) 在x2中,则矩阵-向量积定义为:\[\mathbf{A} \cdot \mathbf{b} = \sum_{j=0}^{n-1} A_{ij} v_j\]其中,求和是对
x1和x2的最后一个维度进行的(除非指定了axes).(对于与共轭向量的矩阵-向量乘积,请使用np.vecmat(x2, x1.mT).)在 2.2.0 版本加入.
- 参数:
- x1, x2array_like
输入数组,不允许使用标量.
- outndarray, 可选
存储结果的位置.如果提供,它必须具有删除求和轴后的
x1和x2的广播形状.如果未提供或为 None,则使用新分配的数组.- \kwargs
对于其他仅限关键字的参数,请参阅 ufunc docs .
- 返回:
- yndarray
输入的矩阵-向量积.
- 提出:
- ValueError
如果
x1和x2的最后一个维度的大小不相同.如果传递了标量值.
示例
沿 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.]])