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, 可选

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

\kwargs

对于其他仅限关键字的参数,请参阅 ufunc docs .

返回:
yndarray

输入的向量点积. 仅当 x1 和 x2 都是 1-d 向量时,这才是标量.

提出:
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.])