Trong hướng dẫn này, chúng ta sẽ xem xét cách tính khoảng cách giữa hai điểm trong Python với sự trợ giúp của một số ví dụ Show
Có một số cách để tính khoảng cách giữa hai điểm trong Python. Bạn có thể tính toán khoảng cách trực tiếp hoặc sử dụng các phương pháp từ các thư viện như Distance between points (2, 3) and (5, 7) is 5.00, Distance between points (2, 3) and (5, 7) is 5.01, Distance between points (2, 3) and (5, 7) is 5.02, v.v. Khoảng cách Euclide giữa hai điểmChúng ta thường đề cập đến khoảng cách Euclide khi nói về khoảng cách giữa hai điểm. Để tính khoảng cách Euclide giữa các điểm (x1, y1) và (x2, y2), bạn có thể sử dụng công thức Ví dụ: khoảng cách giữa các điểm (2, 3) và (5, 7) là 5. Lưu ý rằng công thức trên có thể được mở rộng cho n chiều khoảng cách Euclide trong PythonBây giờ chúng ta đã biết cách tính toán khoảng cách giữa hai điểm, chúng ta có thể tiến hành tính toán nó trong Python Python có một số thư viện giúp bạn tính toán khoảng cách giữa hai điểm, mỗi điểm được biểu thị bằng một chuỗi tọa độ. Trước khi chúng tôi tiếp tục sử dụng các phương pháp có sẵn, hãy tính trực tiếp khoảng cách giữa các điểm (x1, y1) và (x2, y2) # point a x1 = 2 y1 = 3 # point b x2 = 5 y2 = 7 # distance b/w a and b distance = ((x1 - x2)**2 + (y1 - y2)**2)**0.5 # display the result print("Distance between points ({}, {}) and ({}, {}) is {}".format(x1,y1,x2,y2,distance)) đầu ra Distance between points (2, 3) and (5, 7) is 5.0 Bạn có thể thấy rằng chúng ta có khoảng cách giữa các điểm (2, 3) và (5, 7) là 5. Lưu ý rằng công thức trên chỉ hoạt động cho các điểm trong hai chiều Bây giờ chúng ta hãy viết một hàm tổng quát có thể xử lý các điểm với số lượng kích thước bất kỳ def get_distance(p, q): """ Return euclidean distance between points p and q assuming both to have the same number of dimensions """ # sum of squared difference between coordinates s_sq_difference = 0 for p_i,q_i in zip(p,q): s_sq_difference += (p_i - q_i)**2 # take sq root of sum of squared difference distance = s_sq_difference**0.5 return distance # check the function a = (2, 3, 6) b = (5, 7, 1) # distance b/w a and b d = get_distance(a, b) # display the result print(d) đầu ra 7.0710678118654755 Bạn có thể thấy rằng chúng tôi đã sử dụng hàm để lấy khoảng cách giữa hai điểm với ba chiều mỗi điểm. Bây giờ chúng ta có thể sử dụng hàm này để tính khoảng cách giữa hai điểm với bất kỳ kích thước nào Lưu ý rằng chức năng trên có thể được cải thiện hơn nữa bằng cách sử dụng vector hóa để tính toán sự khác biệt giữa các tọa độ Khoảng cách Euclide sử dụng thư viện Distance between points (2, 3) and (5, 7) is 5.00Bạn có thể sử dụng hàm Distance between points (2, 3) and (5, 7) is 5.04 để lấy khoảng cách Euclide giữa hai điểm trong Python. Ví dụ: hãy sử dụng nó để lấy khoảng cách giữa hai điểm 3 chiều, mỗi điểm được biểu thị bằng một bộ import math # two points a = (2, 3, 6) b = (5, 7, 1) # distance b/w a and b d = math.dist(a, b) # display the result print(d) đầu ra 7.0710678118654755 Chúng tôi nhận được cùng một giá trị như trên Khoảng cách Euclide sử dụng thư viện Distance between points (2, 3) and (5, 7) is 5.02Khoảng cách Euclide tương đương với định mức l2 của chênh lệch giữa hai điểm có thể được tính bằng numpy bằng hàm Distance between points (2, 3) and (5, 7) is 5.06 Distance between points (2, 3) and (5, 7) is 5.03 đầu ra 7.0710678118654755 Chúng tôi nhận được kết quả tương tự như trên. Lưu ý rằng, ở đây, chúng ta chuyển sự khác biệt giữa các điểm a và b dưới dạng một mảng có nhiều mảng cho hàm Distance between points (2, 3) and (5, 7) is 5.07 Khoảng cách Euclide sử dụng thư viện Distance between points (2, 3) and (5, 7) is 5.01Thư viện Distance between points (2, 3) and (5, 7) is 5.01 chứa một số chức năng hữu ích của tính toán khoa học trong Python. Sử dụng hàm def get_distance(p, q): """ Return euclidean distance between points p and q assuming both to have the same number of dimensions """ # sum of squared difference between coordinates s_sq_difference = 0 for p_i,q_i in zip(p,q): s_sq_difference += (p_i - q_i)**2 # take sq root of sum of squared difference distance = s_sq_difference**0.5 return distance # check the function a = (2, 3, 6) b = (5, 7, 1) # distance b/w a and b d = get_distance(a, b) # display the result print(d)0 có sẵn trong def get_distance(p, q): """ Return euclidean distance between points p and q assuming both to have the same number of dimensions """ # sum of squared difference between coordinates s_sq_difference = 0 for p_i,q_i in zip(p,q): s_sq_difference += (p_i - q_i)**2 # take sq root of sum of squared difference distance = s_sq_difference**0.5 return distance # check the function a = (2, 3, 6) b = (5, 7, 1) # distance b/w a and b d = get_distance(a, b) # display the result print(d)1 để tính khoảng cách Euclide giữa hai điểm trong Python Distance between points (2, 3) and (5, 7) is 5.00 đầu ra 7.0710678118654755 Chúng tôi nhận được kết quả tương tự như trên. Để biết thêm về chức năng khoảng cách, hãy tham khảo tài liệu của nó Với điều này, chúng ta đi đến phần cuối của hướng dẫn này. Các ví dụ về mã và kết quả được trình bày trong hướng dẫn này đã được triển khai trong Jupyter Notebook với python (phiên bản 3. 8. 3) hạt nhân có phiên bản 1 gọn gàng. 18. 5 và gấu trúc phiên bản 1. 0. 5
Tác giả
|