numpy.vecdot#

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

两个数组的向量点积。

\(\mathbf{a}\)x1 中的向量,\(\mathbf{b}\)x2 中对应的向量。点积定义为

\[\mathbf{a} \cdot \mathbf{b} = \sum_{i=0}^{n-1} \overline{a_i}b_i\]

其中求和是对最后一个维度进行的(除非指定了 axis),并且 \(\overline{a_i}\) 表示 \(a_i\) 的复共轭(如果 \(a_i\) 是复数),否则表示其本身。

2.0.0 版本新增。

参数:
x1, x2类数组对象

输入数组,不允许标量。

outndarray,可选

存储结果的位置。如果提供,它必须是 x1x2 广播后的形状,并移除最后一个轴。如果未提供或为 None,则使用新分配的数组。

**kwargs

有关其他仅限关键字参数,请参阅 ufunc 文档

返回:
yndarray

输入的向量点积。仅当 x1 和 x2 都是一维向量时,这才是标量。

引发:
ValueError

如果 x1 的最后一个维度与 x2 的最后一个维度大小不同。

如果传入的是标量值。

另请参阅

vdot

相同,但首先展平参数

matmul

矩阵-矩阵乘积。

vecmat

向量-矩阵乘积。

matvec

矩阵-向量乘积。

einsum

爱因斯坦求和约定。

示例

>>> import numpy as np

获取沿给定法线方向的向量数组的投影大小。

>>> v = np.array([[0., 5., 0.], [0., 0., 10.], [0., 6., 8.]])
>>> n = np.array([0., 0.6, 0.8])
>>> np.vecdot(v, n)
array([ 3.,  8., 10.])