python中求兩個(gè)向量的夾角方式
python求兩個(gè)向量的夾角
import numpy as np x=np.array([3,5]) y=np.array([4,2]) # 兩個(gè)向量 Lx=np.sqrt(x.dot(x)) Ly=np.sqrt(y.dot(y)) #相當(dāng)于勾股定理,求得斜線的長度 cos_angle=x.dot(y)/(Lx*Ly) #求得cos_sita的值再反過來計(jì)算,絕對(duì)長度乘以cos角度為矢量長度,初中知識(shí)。。 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 #三個(gè)相加 #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求點(diǎn)乘,向量長度,向量夾角的方法
求點(diǎn)乘方法有
- 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)
求兩個(gè)向量夾角
根據(jù)點(diǎn)乘定義,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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)E-Mail收集插件實(shí)例教程
這篇文章主要給大家介紹了關(guān)于Python實(shí)現(xiàn)E-Mail收集插件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧2019-02-02Python讀寫二進(jìn)制文件的實(shí)現(xiàn)
本文主要介紹了Python讀寫二進(jìn)制文件的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04Python利用Selenium實(shí)現(xiàn)彈出框的處理
經(jīng)常出現(xiàn)在網(wǎng)頁上的基于JavaScript實(shí)現(xiàn)的彈出框有三種,分別是?alert、confirm、prompt?。本文主要是學(xué)習(xí)如何利用selenium處理這三種彈出框,感興趣的可以了解一下2022-06-06python實(shí)現(xiàn)監(jiān)控windows服務(wù)并自動(dòng)啟動(dòng)服務(wù)示例
這篇文章主要介紹了python實(shí)現(xiàn)監(jiān)控windows服務(wù)并自動(dòng)啟動(dòng)服務(wù)示例,需要的朋友可以參考下2014-04-04Python.append()與Python.expand()用法詳解
今天小編就為大家分享一篇Python.append()與Python.expand()用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12基于Python實(shí)現(xiàn)人臉自動(dòng)戴口罩系統(tǒng)
2019年新型冠狀病毒感染的肺炎疫情發(fā)生以來,牽動(dòng)人心,舉國哀痛,口罩、酒精、消毒液奇貨可居。這篇文章主要介紹了基于Python的人臉自動(dòng)戴口罩系統(tǒng),需要的朋友可以參考下2020-02-02舉例講解Python中的算數(shù)運(yùn)算符的用法
這篇文章主要介紹了舉例講解Python中的算數(shù)運(yùn)算符的用法,是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-05-05python中利用Future對(duì)象異步返回結(jié)果示例代碼
future是一種對(duì)象,表示異步執(zhí)行的操作。下面這篇文章主要給大家介紹了關(guān)于python中利用Future對(duì)象異步返回結(jié)果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-09-09python django model聯(lián)合主鍵的例子
今天小編就為大家分享一篇python django model聯(lián)合主鍵的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08