NumPy 函数

NumPy vdot() 函数返回两个向量的点积。

vdot(a, b) 函数处理复数的方式与dot(a, b)不同。如果第一个参数是复数,则第一个参数的复共轭用于计算点积。

该函数不会对多维数组执行矩阵乘积。它首先将输入参数展平为一维向量,然后执行点积。

语法

numpy.vdot(a, b) 

参数

a必填。 指定第一个类似数组的参数。如果 a 是复数,则在计算点积之前取复数共轭。
b必需。 指定第二个类似数组的参数。

返回值

返回a和b的点积。

示例:带有标量的 vdot() 函数

下面的示例显示了两个标量与 vdot() 函数一起使用时的结果。

import numpy as np
print(np.vdot(5, 10)) 

上述代码的输出将是:

50 

示例:具有一维数组的 vdot() 函数

当使用两个一维数组时,该函数返回数组的内积。

import numpy as np
Arr1 = [5, 8]
Arr2 = [10, 20]

#返回 5*10 + 8*20 = 210
print(np.vdot(Arr1, Arr2)) 

上述代码的输出将是:

210 

示例:具有复数的 vdot() 函数

当第一个参数为复数时,函数采用第一个参数的共轭来计算点积。考虑下面的示例。

import numpy as np
Arr1 = np.array([1+2j, 1+3j])
Arr2 = np.array([2+2j, 2+3j])

Arr3 = np.vdot(Arr1, Arr2)

print(Arr3) 

上述代码的输出将为:

(17-5j) 

vdot 乘积计算如下:

conjugate of Arr1 = [1-2j, 1-3j]

= (1-2j)*(2+2j) + (1-3j)*(2+3j)
= (6-2j) + (11-3j)
= (17-5j) 

示例: vdot() 函数与矩阵

当使用两个矩阵时,该函数首先将矩阵展平为一维数组,然后执行内积。

import numpy as np
Arr1 = np.array([[1, 2], 
                 [3, 4]])
Arr2 = np.array([[10, 20], 
                 [30, 40]])
Arr3 = np.vdot(Arr1, Arr2)

print(Arr3) 

上述代码的输出将是:

300 

vdot 乘积计算如下:

#扁平化后的数组
Arr1 = [1, 2, 3, 4]
Arr2 = [10, 20, 30, 40]

#vdot 计算如下
= 1*10 + 2*20 + 3*30 + 4*40
= 10 + 40 + 90 + 160 
= 300