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