r 語言計算歐氏距離 歐氏距離計算在R沒有意義

2021-10-21 08:03:20 字數 799 閱讀 8133

(序言:我既不是統計學家,也不是程式設計師,我在人文學科中工作,所以我的靈魂是憐憫的).

我需要計算r中一系列點之間的歐氏距離.我一直在使用dist(),如下所示:

> x

> y

> dist(rbind(x,y))

xy 10

到現在為止還挺好.但是當我看到我的結果(真實數字)時,他們是非常糟糕的.所以我想到我的r指令碼是從錯誤的列抓取資料.但我檢查了,而不是.

所以我開始玩玩具數字,我是驚喜.上述示例(垂直線)正常工作,如下(水平線):

> x

> y

> dist(rbind(x,y))

xy 10

但是當兩點形成的線對角線時,就會出現陌生的情況:

> x

> y

> dist(rbind(x,y))

xy 0

距離0?咦?那是不對的

當點數是相同的(這在我的資料中很有可能),我們下了兔子洞:

> x

> y

> dist(rbind(x,y))

xy 14.14214

這不應該是0?畢竟,這些點是相同的,所以它們之間可以沒有距離.

為了防止dist()有問題,我試圖用維基百科手動實現公式.相同的結果:

> sqrt(sum((x - y) ^ 2))

[1] 14.14214

如上所述,我的數學背景很小,所以我完全期望這裡的錯誤是我的.如果是這樣,請說明是什麼以及如何糾正.但是從現在的立場來看,似乎有些事情是非常錯誤的.

最糟糕的是,我無法分析我的資料.

python 計算向量歐氏距離 numpy

給定兩個向量,計算歐式距離 直接呼叫numpy中的幾個函式就行了 這種東西,絕對不要自己寫,哈哈 涉及到怎麼將list轉化為numpy的array python view plain copy defcaleuclideandistance vec1,vec2 dist numpy.sqrt num...

用numpy高效計算歐氏距離

在各類演算法中,距離的計算極其常見,用numpy來計算效率非常的高,其計算方式也有很多。個人認為最直觀也非常高效的一種方式如下 首先看二維歐式距離的公式定義d 那麼就依據公式的定義,我們直觀的來設定計算公式,廢話不多說直接見 import numpy as np a np.arange 16 res...

歐氏距離(Euclidean distance)

歐氏距離定義 歐氏距離 euclidean distance 是乙個通常採用的距離定義,它是在m維空間中兩個點之間的真實距離。在二維和三維空間中的歐式距離的就是兩點之間的距離,二維的公式是 d sqrt x1 x2 y1 y2 三維的公式是 d sqrt x1 x2 y1 y2 z1 z2 推廣到n...