點積是針對向量而言的。
我們可以理解為維度[n,1]或者[1,n],一維的矩陣。
在python中,我們設定乙個array,檢視其shape:
>>
>
import numpy as np
>>
> a = np.array([1
,2,3
,4,5
])>>
> a
array([1
,2,3
,4,5
])>>
> a.shape(5
,)
可以看到維度是(5, ),並不是(5,1)或者(1,5)。
這東西剛接觸的時候很容易搞不清楚。我的理解是,python把這個認定為是向量。
而向量的5其實在空間中可以認為是5個維度的意思,每個維度上有乙個值。
而兩個向量的點積:
>>
> b = np.array([2
,2,3
,3,1
])>>
> b
array([2
,2,3
,3,1
])>>
> b.shape(5
,)>>
> c = np.dot(a,b)
>>
> c
32
就是每個元素相乘之後求和。
乘積的概念是針對矩陣來說的。
所以需要滿足維度匹配才可以進行乘積,即矩陣乘法。
前面矩陣的列元素個數,需要等於後面矩陣行元素個數。
即維度 [n , m] 和 [m , k] 這兩個矩陣才可以乘積。
>>
> d = np.matrix([[
1,2,
3],[
2,3,
4]])
>>
> d
matrix([[
1,2,
3],[
2,3,
4]])
>>
> e = np.matrix([[
1,2]
,[2,
3],[
4,5]
])>>
> e
matrix([[
1,2]
,[2,
3],[
4,5]
])>>
> f = np.dot(d,e)
>>
> f
matrix([[
17,23]
,[24,
33]])
[2 , 3] 的矩陣和 [3 , 2] 的矩陣乘積得到乙個 [2 , 2] 的矩陣。
另外,我們不用 matrix 而改用 array 也是可以的:
>>
> d_2 = np.array([[
1,2,
3],[
2,3,
4]])
>>
> d_2
array([[
1,2,
3],[
2,3,
4]])
>>
> e_2 = np.array([[
1,2]
,[2,
3],[
4,5]
])>>
> e_2
array([[
1,2]
,[2,
3],[
4,5]
])>>
> f_2 = np.dot(d_2,e_2)
>>
> f_2
array([[
17,23]
,[24,
33]])
如果我們把兩個 array 擴充套件乙個維度出來:
>>
> a
array([1
,2,3
,4,5
])>>
> a_reshape = a.reshape([5
,1])
>>
> a_reshape
array([[
1],[
2],[
3],[
4],[
5]])
>>
> a_reshape.shape(5
,1)
這個時候 array 維度變了。
>>
> b
array([2
,2,3
,3,1
])>>
> b_reshape = b.reshape([5
,1])
>>
> b_reshape
array([[
2],[
2],[
3],[
3],[
1]])
>>
> b_reshape.shape(5
,1)>>
> a_b = np.dot(a,b)
>>
> a_b
32
有意思的是,這裡(5,1)和(5,1)的維度可以直接做乘積。這應該是python為了便利而擴充套件的功能吧。
如果我們把b的維度變為 (1,5),結果還是一樣的:
>>
> b_reshape_2 = b.reshape([1
,5])
>>
> a_b_2 = np.dot(a,b)
>>
> a_b_2
32>>
> b_reshape_2.shape(1
,5)
如果乘積中乙個矩陣超過了一維,那就要做維度匹配了。 向量的點積和叉積
點乘 也叫向量的內積 數量積.顧名思義,求下來的結果是乙個數.向量a 向量b a b cos 在物理學中,已知力與位移求功,實際上就是求向量f與向量s的內積,即要用點乘.叉乘 也叫向量的外積 向量積.顧名思義,求下來的結果是乙個向量,記這個向量為c.向量c 向量a 向量b a b sin 向量c的方...
向量的點積和叉積
一 向量數量積用於計算向量夾角 中學階段學空間幾何時,知道用兩個向量a,b之間的數量積來計算向量之間的夾角。這是因為三角形的餘弦定理 abc中角a b c對應的邊分別為a b c 則有cosa b c a 2bc cosb a c b 2ac cosc a b c 2ab 基於此餘弦定理 我們進一步...
計算矩陣和向量之積,以及向量和矩陣之積
public class test,double b double arr1 mult a,b system.out.println 計算矩陣和向量之積 for double i arr1 double arr2 mult b,a system.out.println 計算向量和矩陣之積 for d...