📜  Python中的 numpy.vdot()

📅  最后修改于: 2022-05-13 01:55:10.084000             🧑  作者: Mango

Python中的 numpy.vdot()

先决条件 - Python中的 numpy.dot()
numpy.vdot(vector_a, vector_b)返回向量 a 和 b 的点积。如果第一个参数是复数,则第一个参数的复共轭(这是vdot()dot()方法的不同之处)用于计算点积。它可以处理多维数组,但可以将其作为扁平数组处理。

参数 -

  1. vector_a : [array_like] 如果 a 是复数,则其复共轭用于计算点积。
  2. 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