Python'da öklid uzaklığı nasıl hesaplanır (örneklerle)


İki vektör A ve B arasındaki Öklid mesafesi şu şekilde hesaplanır:

Öklid uzaklığı = √ Σ(A i -B i ) 2

Python’da iki vektör arasındaki Öklid mesafesini hesaplamak için numpy.linalg.norm işlevini kullanabiliriz:

 #import functions
import numpy as np
from numpy. linalg import norm

#define two vectors
a = np.array([2, 6, 7, 7, 5, 13, 14, 17, 11, 8])
b = np.array([3, 5, 5, 3, 7, 12, 13, 19, 22, 7])

#calculate Euclidean distance between the two vectors 
norm(ab)

12.409673645990857

İki vektör arasındaki Öklid mesafesi 12,40967 olarak ortaya çıkıyor.

İki vektörün aynı uzunlukta olmaması durumunda bu fonksiyonun bir uyarı mesajı üreteceğini unutmayın:

 #import functions
import numpy as np
from numpy. linalg import norm

#define two vectors
a = np.array([2, 6, 7, 7, 5, 13, 14])
b = np.array([3, 5, 5, 3, 7, 12, 13, 19, 22, 7])

#calculate Euclidean distance between the two vectors 
norm(ab)

ValueError : operands could not be broadcast together with shapes (7,) (10,) 

Bu işlevi bir pandanın DataFrame’inin iki sütunu arasındaki Öklid mesafesini hesaplamak için de kullanabileceğimizi unutmayın:

 #import functions
import pandas as pd 
import numpy as np
from numpy. linalg import norm

#define DataFrame with three columns
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#calculate Euclidean distance between 'points' and 'assists' 
norm(df[' points '] - df[' assists '])

40.496913462633174

İki sütun arasındaki Öklid mesafesi 40,49691 olarak çıkıyor.

Yorumlar

1. Python’da Öklid mesafesini hesaplamanın birkaç yolu vardır, ancak bu Yığın Taşması başlığında açıklandığı gibi, burada açıklanan yöntemin en hızlı olduğu ortaya çıkıyor.

2. Numpy.linalg.norm işlevinin tam belgelerini burada bulabilirsiniz.

3. Öklid uzaklığı hakkında daha fazla bilgi edinmek için bu Wikipedia sayfasına başvurabilirsiniz .

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir