numpy.vdot#

numpy.vdot(a, b, /)#

傳回兩個向量的點積。

vdot 函數處理複數的方式與 dot 不同:如果第一個參數是複數,則在點積計算中會以其複共軛取代。vdot 處理多維陣列的方式也與 dot 不同:它不會執行矩陣乘積,而是在計算向量點積之前,先將參數展平為 1 維陣列。

因此,當參數是相同形狀的 2 維陣列時,此函數實際上會傳回它們的 Frobenius 內積(也稱為跡內積或矩陣向量空間上的標準內積)。

參數:
aarray_like

如果 a 是複數,則在計算點積之前會取其複共軛。

barray_like

點積的第二個參數。

傳回值:
outputndarray

ab 的點積。可以是整數、浮點數或複數,取決於 ab 的類型。

另請參閱

dot

傳回點積,但不使用第一個參數的複共軛。

範例

>>> import numpy as np
>>> a = np.array([1+2j,3+4j])
>>> b = np.array([5+6j,7+8j])
>>> np.vdot(a, b)
(70-8j)
>>> np.vdot(b, a)
(70+8j)

請注意,更高維度的陣列會被展平!

>>> a = np.array([[1, 4], [5, 6]])
>>> b = np.array([[4, 1], [2, 2]])
>>> np.vdot(a, b)
30
>>> np.vdot(b, a)
30
>>> 1*4 + 4*1 + 5*2 + 6*2
30