python中求兩個向量的夾角方式
更新時間:2023年06月14日 16:03:46 作者:sugar椰子皮
這篇文章主要介紹了python中求兩個向量的夾角方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
python求兩個向量的夾角
import numpy as np x=np.array([3,5]) y=np.array([4,2]) # 兩個向量 Lx=np.sqrt(x.dot(x)) Ly=np.sqrt(y.dot(y)) #相當于勾股定理,求得斜線的長度 cos_angle=x.dot(y)/(Lx*Ly) #求得cos_sita的值再反過來計算,絕對長度乘以cos角度為矢量長度,初中知識。。 print(cos_angle) angle=np.arccos(cos_angle) angle2=angle*360/2/np.pi #變?yōu)榻嵌? print(angle2) #x.dot(y) = y=∑(ai*bi)
矩陣相乘的算法
>> a=[1,2,3;4,5,6;7,8,9]; >> b=[6,6,6;6,6,6;6,6,6]; >> dot(a, ans = 72 90 108 1*6+4*6+7*6=72 #三個相加 #dot 是矩陣相乘 #print(np.dot(x,x)) #34 # a=np.linalg.norm(x-y) # print(a) costheta=x.dot(y)/(np.linalg.norm(x)*np.linalg.norm(y)) #范數(shù) # #[-1 3] # a=np.square(x-y) # #[1,9] # print(np.sum(a)) # #10 # print(np.sqrt(10))
NumPy.array求點乘,向量長度,向量夾角的方法
求點乘方法有
- 1. np.sum(a*b)
- 2. (a*b).sum()
- 3. np.dot(a, b)
- 4. a.dot(b)
- 5. b.dot(a)
求向量長度方法有
- 1. np.sqrt((a*a).sum())
- 2. np.linalg.norm(a)
求兩個向量夾角
根據(jù)點乘定義,cosangle = a.dot(b)/(np.linalg.norm(a) * np.linalg.norm(b))
In [25]: a = np.array([1,2]) In [26]: b = np.array([2, 1]) In [27]: dot = 0 In [28]: for e, f in zip(a, b): ...: dot += e*f ...: In [29]: dot Out[29]: 4 In [30]: a*b Out[30]: array([2, 2]) In [31]: np.sum(a*b) Out[31]: 4 In [32]: (a*b).sum() Out[32]: 4 In [33]: np.dot(a,b) Out[33]: 4 In [34]: a.dot(b) Out[34]: 4 In [35]: b.dot(a) Out[35]: 4 In [36]: amag = np.sqrt((a*a).sum()) In [37]: amag Out[37]: 2.23606797749979 In [38]: amag = np.linalg.norm(a) In [39]: amag Out[39]: 2.23606797749979 In [40]: cosangle = a.dot(b)/(np.linalg.norm(a) * np.linalg.norm(b)) In [41]: cosangle Out[41]: 0.7999999999999998 In [42]: angle = np.arccos(cosangle) In [43]: angle Out[43]: 0.6435011087932847
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python利用Selenium實現(xiàn)彈出框的處理
經(jīng)常出現(xiàn)在網(wǎng)頁上的基于JavaScript實現(xiàn)的彈出框有三種,分別是?alert、confirm、prompt?。本文主要是學習如何利用selenium處理這三種彈出框,感興趣的可以了解一下2022-06-06python實現(xiàn)監(jiān)控windows服務并自動啟動服務示例
這篇文章主要介紹了python實現(xiàn)監(jiān)控windows服務并自動啟動服務示例,需要的朋友可以參考下2014-04-04Python.append()與Python.expand()用法詳解
今天小編就為大家分享一篇Python.append()與Python.expand()用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12基于Python實現(xiàn)人臉自動戴口罩系統(tǒng)
2019年新型冠狀病毒感染的肺炎疫情發(fā)生以來,牽動人心,舉國哀痛,口罩、酒精、消毒液奇貨可居。這篇文章主要介紹了基于Python的人臉自動戴口罩系統(tǒng),需要的朋友可以參考下2020-02-02python中利用Future對象異步返回結(jié)果示例代碼
future是一種對象,表示異步執(zhí)行的操作。下面這篇文章主要給大家介紹了關(guān)于python中利用Future對象異步返回結(jié)果的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。2017-09-09python django model聯(lián)合主鍵的例子
今天小編就為大家分享一篇python django model聯(lián)合主鍵的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08