Python中的 numpy.vdot()
先决条件 - Python中的 numpy.dot()
numpy.vdot(vector_a, vector_b)
返回向量 a 和 b 的点积。如果第一个参数是复数,则第一个参数的复共轭(这是vdot()
与dot()
方法的不同之处)用于计算点积。它可以处理多维数组,但可以将其作为扁平数组处理。
参数 -
- vector_a : [array_like] 如果 a 是复数,则其复共轭用于计算点积。
- vector_b : [array_like] 如果 b 是复数,则其复共轭用于计算点积。
返回 -向量 a 和 b 的点积。
代码 1:
# Python Program illustrating
# numpy.vdot() method
import numpy as geek
# 1D array
vector_a = 2 + 3j
vector_b = 4 + 5j
product = geek.vdot(vector_a, vector_b)
print("Dot Product : ", product)
输出 :
Dot Product : (23-2j)
Code1 是如何工作的?
矢量_a = 2 + 3j
矢量_b = 4 + 5j
按照方法,取vector_a的共轭,即2-3j
现在点积 = 2(4 – 5j) + 3j(4 – 5j)
= 8 – 10j + 12j + 15
= 23 – 2j
代码 2:
# Python Program illustrating
# numpy.vdot() method
import numpy as geek
# 1D array
vector_a = geek.array([[1, 4], [5, 6]])
vector_b = geek.array([[2, 4], [5, 2]])
product = geek.vdot(vector_a, vector_b)
print("Dot Product : ", product)
product = geek.vdot(vector_b, vector_a)
print("\nDot Product : ", product)
"""
How Code 2 works :
array is being flattened
1 * 2 + 4 * 4 + 5 * 5 + 6 * 2 = 55
"""
输出 :
Dot Product : 55
Dot Product : 55
参考 :
https://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.vdot.html#numpy.vdot