真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python歐式距離函數(shù)的簡(jiǎn)單介紹

python如何表示 圓周率

python表示圓周率的方法:

為澠池等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及澠池網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為做網(wǎng)站、網(wǎng)站設(shè)計(jì)、澠池網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

使用“import”語(yǔ)句導(dǎo)入math包?!癿ath.pi”函數(shù)可以獲取到圓周率,那么就可以用“math.pi”函數(shù)來表示圓周率

示例如下:

執(zhí)行結(jié)果如下:

更多Python知識(shí),請(qǐng)關(guān)注:Python自學(xué)網(wǎng)??!

python計(jì)算每?jī)蓚€(gè)向量之間的距離并保持到矩陣中

在很多算法中都會(huì)涉及到求向量歐式距離,例如機(jī)器學(xué)習(xí)中的KNN算法,就需要對(duì)由訓(xùn)練集A和測(cè)試集B中的向量組成的所有有序?qū)?Ai,Bi),求出Ai和Bi的歐式距離。這樣的話就會(huì)帶來一個(gè)二重的嵌套循環(huán),在向量集很大時(shí)效率不高。

這里介紹如何將這一過程用矩陣運(yùn)算實(shí)現(xiàn)。

假設(shè)有兩個(gè)三維向量集,用矩陣表示:

A=[a11a12a21a22a31a32]

B=????b11b12b13b21b22b23b31b32b33????

要求A,B兩個(gè)集合中的元素兩兩間歐氏距離。

先求出ABT:

ABT=???????∑k=13ak1bk1∑k=13ak2bk1∑k=13ak1bk2∑k=13ak2bk2∑k=13ak1bk3∑k=13ak2bk3???????

然后對(duì)A和BT分別求其中每個(gè)向量的模平方,并擴(kuò)展為2*3矩陣:

Asq=???????∑k=13(ak1)2∑k=13(ak2)2∑k=13(ak1)2∑k=13(ak2)2∑k=13(ak1)2∑k=13(ak2)2???????

Bsq=???????∑k=13(bk1)2∑k=13(bk1)2∑k=13(bk2)2∑k=13(bk2)2∑k=13(bk3)2∑k=13(bk3)2???????

然后:

Asq+Bsq?2ABT=???????∑k=13(ak1?bk1)2∑k=13(ak2?bk1)2∑k=13(ak1?bk2)2∑k=13(ak2?bk2)2∑k=13(ak1?bk3)2∑k=13(ak2?bk3)2???????

將上面這個(gè)矩陣一開平方,就得到了A,B向量集兩兩間的歐式距離了。

下面是Python實(shí)現(xiàn):

import numpy

def EuclideanDistances(A, B):

BT = B.transpose()

vecProd = A * BT

SqA = A.getA()**2

sumSqA = numpy.matrix(numpy.sum(SqA, axis=1))

sumSqAEx = numpy.tile(sumSqA.transpose(), (1, vecProd.shape[1]))

SqB = B.getA()**2

sumSqB = numpy.sum(SqB, axis=1)

sumSqBEx = numpy.tile(sumSqB, (vecProd.shape[0], 1))

SqED = sumSqBEx + sumSqAEx - 2*vecProd

ED = (SqED.getA())**0.5

return numpy.matrix(ED)

Python 計(jì)算三維空間某點(diǎn)距離原點(diǎn)的歐式距離

1、點(diǎn)擊“開始”——“ArcGIS”——“ArcMap”,啟動(dòng)ArcMap程序,并添加兩個(gè)點(diǎn)要素類到地圖上。

2、點(diǎn)擊“ArcToolbox”——“分析工具”——“鄰域分析”——“點(diǎn)距離”,打開點(diǎn)距離工具界面。

3、選擇輸入要素,即作為起點(diǎn)的要素類,可以選擇已添加到地圖上的要素類,也可以選擇外部要素類。

4、選擇鄰近要素,即作為終點(diǎn)的要素類,可以選擇已添加到地圖上的要素類,也可以選擇外部要素類。

5、選擇計(jì)算結(jié)果的存放位置和表名稱。

6、輸入搜索半徑,即要計(jì)算多大半徑范圍內(nèi)的鄰近點(diǎn)要素之間的距離,可以為空,如果為空,則計(jì)算起點(diǎn)到鄰近要素類中所有點(diǎn)要素之間的距離。點(diǎn)擊“確定”,開始計(jì)算起點(diǎn)要素到鄰近要素之間的距離。

7、計(jì)算完成后,計(jì)算結(jié)果表會(huì)自動(dòng)添加到地圖上,右鍵點(diǎn)擊結(jié)果表,點(diǎn)擊打開,可以查看計(jì)算結(jié)果。

Python (3) 如何計(jì)算歐式距離

最直接的方式當(dāng)然是用numpy.linalg.norm()來計(jì)算

參考:

這里想說的是axis參數(shù)問題:

axis為0的時(shí)候,對(duì)于二維矩陣是計(jì)算它的列向量的norm;

axis為1的時(shí)候,對(duì)于二維矩陣是計(jì)算它的行向量的norm。

這也很好理解,畢竟列是第一維,而行是第二維,故順序如此。

另外還有一個(gè)ord參數(shù),定義的是計(jì)算什么norm,參數(shù)列表如下:

python中怎樣定義一個(gè)函數(shù)來計(jì)算兩點(diǎn)距離?

import?math

class?Dot:

def?__init__(self,x,y,z):

self.x=float(x)

self.y=float(y)

self.z=float(z)???

t1=input('請(qǐng)輸入點(diǎn)t1的坐標(biāo):')

t2=input('請(qǐng)輸入點(diǎn)t2的坐標(biāo):')

t1=eval('[%s]'%t1)

t2=eval('[%s]'%t2)

T1=Dot(t1[0],t1[1],t1[2])

T2=Dot(t2[0],t2[1],t2[2])

print('點(diǎn)t1:',T1.x,T1.y,T1.z)

print('點(diǎn)t2:',T2.x,T2.y,T2.z)

s=math.sqrt((T1.x-T2.x)*(T1.x-T2.x)-(T1.y-T2.y)*(T1.y-T2.y)+(T1.z-T2.z)*(T1.z-T2.z))

print("兩點(diǎn)間的距離為:%s"%?s)

怎樣用python計(jì)算兩個(gè)向量的歐式距離

L2距離就是二范數(shù),用norm試一下。

比如兩個(gè)1D向量分別為a,b,則歐式距離可以表示為:

norm(a-b), 相當(dāng)于

sqrt(sum((a-b).^2))


網(wǎng)頁(yè)題目:python歐式距離函數(shù)的簡(jiǎn)單介紹
文章鏈接:http://weahome.cn/article/hedejd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部