Lưu đồ cho khoảng cách giữa hai điểm trong python

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ụ

Lưu đồ cho khoảng cách giữa hai điểm trong python
Lưu đồ cho khoảng cách giữa hai điểm trong python

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.0
0,
Distance between points (2, 3) and (5, 7) is 5.0
1,
Distance between points (2, 3) and (5, 7) is 5.0
2, v.v.

Khoảng cách Euclide giữa hai điểm

Chú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

Lưu đồ cho khoảng cách giữa hai điểm trong python
Lưu đồ cho khoảng cách giữa hai điểm trong python

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

Lưu đồ cho khoảng cách giữa hai điểm trong python
Lưu đồ cho khoảng cách giữa hai điểm trong python

khoảng cách Euclide trong Python

Bâ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.00

Bạn có thể sử dụng hàm

Distance between points (2, 3) and (5, 7) is 5.0
4 để 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.02

Khoả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.0
6

Distance between points (2, 3) and (5, 7) is 5.0
3

đầ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.0
7

Khoảng cách Euclide sử dụng thư viện Distance between points (2, 3) and (5, 7) is 5.01

Thư viện

Distance between points (2, 3) and (5, 7) is 5.0
1 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.0
0

đầ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


Đăng ký nhận bản tin của chúng tôi để biết thêm thông tin và hướng dẫn.
Chúng tôi không gửi thư rác và bạn có thể chọn không tham gia bất kỳ lúc nào.


Tác giả

  • Lưu đồ cho khoảng cách giữa hai điểm trong python
    Lưu đồ cho khoảng cách giữa hai điểm trong python

    Piyush Raj

    Piyush là một chuyên gia dữ liệu đam mê sử dụng dữ liệu để hiểu mọi thứ tốt hơn và đưa ra quyết định sáng suốt. Trước đây, anh ấy từng là Nhà khoa học dữ liệu cho ZS và có bằng kỹ sư của IIT Roorkee. Sở thích của anh ấy bao gồm xem cricket, đọc sách và làm việc trong các dự án phụ