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\) 是复数则为其复共轭,否则为自身。
版本 2.0.0 中新增。
- 参数:
- x1, x2array_like
输入数组,不允许标量。
- outndarray,可选
存储结果的位置。如果提供,则必须具有 x1 和 x2 的广播形状,并移除最后一个轴。如果未提供或为 None,则使用新分配的数组。
- **kwargs
有关其他关键字参数,请参阅 ufunc 文档。
- 返回:
- yndarray
输入的向量点积。当且仅当 x1、x2 都是 1-d 向量时,结果才是标量。
- 引发:
- ValueError
如果 x1 的最后一个维度的大小与 x2 的最后一个维度的大小不同。
如果输入的是标量值。
示例
>>> 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.])