วิธีการคำนวณระยะทางแบบยุคลิดใน python (พร้อมตัวอย่าง)


ระยะห่างแบบยุคลิด ระหว่างเวกเตอร์ A และ B สองตัวคำนวณได้ดังนี้:

ระยะทางแบบยุคลิด = √ Σ(A i -B i ) 2

ในการคำนวณระยะทางแบบยุคลิดระหว่างเวกเตอร์สองตัวใน Python เราสามารถใช้ฟังก์ชัน numpy.linalg.norm :

 #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

ระยะห่างแบบยุคลิดระหว่างเวกเตอร์ทั้งสองกลายเป็น 12.40967

โปรดทราบว่าฟังก์ชันนี้จะสร้างข้อความเตือนหากเวกเตอร์ทั้งสองมีความยาวไม่เท่ากัน:

 #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,) 

โปรดทราบว่าเรายังสามารถใช้ฟังก์ชันนี้เพื่อคำนวณระยะทางแบบยุคลิดระหว่างสองคอลัมน์ของ DataFrame ของ pandas:

 #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

ระยะห่างแบบยุคลิดระหว่างสองคอลัมน์กลายเป็น 40.49691

ความคิดเห็น

1. มีหลายวิธีในการคำนวณระยะทางแบบยุคลิดใน Python แต่ตามที่ เธรด Stack Overflow นี้อธิบาย วิธีที่อธิบายไว้ที่นี่จะกลายเป็นวิธีที่เร็วที่สุด

2. คุณสามารถดูเอกสารฉบับเต็มของฟังก์ชัน numpy.linalg.norm ได้ที่นี่

3. คุณสามารถดู หน้า Wikipedia นี้ เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับระยะทางแบบยุคลิด

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *