向量點積和矩陣乘積的區別

2021-10-04 07:07:02 字數 2902 閱讀 6503

點積是針對向量而言的。

我們可以理解為維度[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...