Hướng dẫn python distance between two points - python khoảng cách giữa hai điểm

Phương pháp toán học


Thí dụ

Tìm khoảng cách Euclide giữa một và hai chiều:

# Nhập thư viện toán học
import math

P = [3] Q = [1]
q = [1]

# Tính toán khoảng cách Euclide (Math.Dist (P, Q))
print (math.dist(p, q))

P = [3, 3] Q = [6, 12]
q = [6, 12]

# Tính toán khoảng cách Euclide (Math.Dist (P, Q))
print (math.dist(p, q))

P = [3, 3] Q = [6, 12]

from math import hypot

pts = [
    (10,10),
    (10,11),
    (20,11),
    (20,10),
    (10,10),
    ]

# Py2 syntax - no longer allowed in Py3
# ptdiff = lambda (p1,p2): (p1[0]-p2[0], p1[1]-p2[1])
ptdiff = lambda p1, p2: (p1[0]-p2[0], p1[1]-p2[1])

diffs = (ptdiff(p1, p2) for p1, p2 in zip (pts, pts[1:]))
path = sum(hypot(*d) for d in  diffs)
print(path)
5

Kết quả sẽ là:


Chạy ví dụ »

Định nghĩa và cách sử dụng

Phương pháp

from math import hypot

pts = [
    (10,10),
    (10,11),
    (20,11),
    (20,10),
    (10,10),
    ]

# Py2 syntax - no longer allowed in Py3
# ptdiff = lambda (p1,p2): (p1[0]-p2[0], p1[1]-p2[1])
ptdiff = lambda p1, p2: (p1[0]-p2[0], p1[1]-p2[1])

diffs = (ptdiff(p1, p2) for p1, p2 in zip (pts, pts[1:]))
path = sum(hypot(*d) for d in  diffs)
print(path)
6 trả về khoảng cách Euclide giữa hai điểm (P và Q), trong đó P và Q là tọa độ của điểm đó. The two points (p and q) must be of the same dimensions.


Lưu ý: Hai điểm (P và Q) phải có cùng kích thước.

Cú pháp

Giá trị tham sốTham số
Sự mô tảP
Yêu cầu. Chỉ định điểm 1Q.

Yêu cầu. Chỉ định điểm 2

Chi tiết kỹ thuậtGiá trị trở lại:
Giá trị
from math import hypot

pts = [
    (10,10),
    (10,11),
    (20,11),
    (20,10),
    (10,10),
    ]

# Py2 syntax - no longer allowed in Py3
# ptdiff = lambda (p1,p2): (p1[0]-p2[0], p1[1]-p2[1])
ptdiff = lambda p1, p2: (p1[0]-p2[0], p1[1]-p2[1])

diffs = (ptdiff(p1, p2) for p1, p2 in zip (pts, pts[1:]))
path = sum(hypot(*d) for d in  diffs)
print(path)
7, đại diện cho khoảng cách Euclide giữa P và Q
3.8

Phương pháp toán học


Chúng ta đừng quên Math.hypot:

dist = math.hypot(x2-x1, y2-y1)

Đây là Hypot như là một phần của đoạn trích để tính độ dài của đường dẫn được xác định bởi danh sách các bộ dữ liệu (x, y):

from math import hypot

pts = [
    (10,10),
    (10,11),
    (20,11),
    (20,10),
    (10,10),
    ]

# Py2 syntax - no longer allowed in Py3
# ptdiff = lambda (p1,p2): (p1[0]-p2[0], p1[1]-p2[1])
ptdiff = lambda p1, p2: (p1[0]-p2[0], p1[1]-p2[1])

diffs = (ptdiff(p1, p2) for p1, p2 in zip (pts, pts[1:]))
path = sum(hypot(*d) for d in  diffs)
print(path)

Cập nhật lần cuối vào ngày 19 tháng 8 năm 2022 21:50:49 (UTC/GMT +8 giờ)

Python Basic: Tập thể dục-40 với giải pháp

Viết một chương trình Python để tính khoảng cách giữa các điểm (x1, y1) và (x2, y2).

Trình bày bằng hình ảnh:

Hướng dẫn python distance between two points - python khoảng cách giữa hai điểm

Giải pháp mẫu:-:-

Mã Python:

import math
p1 = [4, 0]
p2 = [6, 6]
distance = math.sqrt( ((p1[0]-p2[0])**2)+((p1[1]-p2[1])**2) )

print(distance)

Đầu ra mẫu:

6.324555320336759 

Flowchart:

Hướng dẫn python distance between two points - python khoảng cách giữa hai điểm

Trực quan hóa thực thi mã Python:

Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực hiện chương trình đã nói:

Trình chỉnh sửa mã Python:

Có một cách khác để giải quyết giải pháp này? Đóng góp mã của bạn (và nhận xét) thông qua Disqus.

Trước đây: Viết một chương trình Python để tính toán giá trị tương lai của một số tiền gốc được chỉ định, lãi suất và một số năm. Write a Python program to compute the future value of a specified principal amount, rate of interest, and a number of years.
Next: Write a Python program to check whether a file exists.

Python: Lời khuyên trong ngày

Giá trị biến đổi biến:

>>> a, b = 1, 2
>>> a, b = b, a
>>> a, b
(2, 1)

Trong hướng dẫn này, chúng tôi 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ụ.

Hướng dẫn python distance between two points - python khoảng cách giữa hai điểm

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 thức từ các thư viện như

from math import hypot

pts = [
    (10,10),
    (10,11),
    (20,11),
    (20,10),
    (10,10),
    ]

# Py2 syntax - no longer allowed in Py3
# ptdiff = lambda (p1,p2): (p1[0]-p2[0], p1[1]-p2[1])
ptdiff = lambda p1, p2: (p1[0]-p2[0], p1[1]-p2[1])

diffs = (ptdiff(p1, p2) for p1, p2 in zip (pts, pts[1:]))
path = sum(hypot(*d) for d in  diffs)
print(path)
8,
from math import hypot

pts = [
    (10,10),
    (10,11),
    (20,11),
    (20,10),
    (10,10),
    ]

# Py2 syntax - no longer allowed in Py3
# ptdiff = lambda (p1,p2): (p1[0]-p2[0], p1[1]-p2[1])
ptdiff = lambda p1, p2: (p1[0]-p2[0], p1[1]-p2[1])

diffs = (ptdiff(p1, p2) for p1, p2 in zip (pts, pts[1:]))
path = sum(hypot(*d) for d in  diffs)
print(path)
9,
import math
p1 = [4, 0]
p2 = [6, 6]
distance = math.sqrt( ((p1[0]-p2[0])**2)+((p1[1]-p2[1])**2) )

print(distance)

0, v.v.

Chúng tôi 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:

Hướng dẫn python distance between two points - python khoảng cách giữa hai điểm

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 thành các chiều n.

Hướng dẫn python distance between two points - python khoảng cách giữa hai điểm

Khoảng cách Euclide trong Python

Bây giờ chúng ta đã biết khoảng cách giữa hai điểm được tính toán bằng toán học, 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ến hành sử dụng các phương thức ngoài luồng, hãy để trực tiếp tính toán 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))

Output:

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 theo hai chiều.

Bây giờ, hãy viết một chức năng tổng quát có thể xử lý các điểm với bất kỳ số lượng kích thước nào.

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)

Output:

7.0710678118654755

Bạn có thể thấy rằng chúng tôi đã sử dụng hàm để có khoảng cách giữa hai điểm với ba chiều mỗi chiều. 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 hàm trên có thể được cải thiện thêm 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 bằng thư viện from math import hypot pts = [ (10,10), (10,11), (20,11), (20,10), (10,10), ] # Py2 syntax - no longer allowed in Py3 # ptdiff = lambda (p1,p2): (p1[0]-p2[0], p1[1]-p2[1]) ptdiff = lambda p1, p2: (p1[0]-p2[0], p1[1]-p2[1]) diffs = (ptdiff(p1, p2) for p1, p2 in zip (pts, pts[1:])) path = sum(hypot(*d) for d in diffs) print(path) 8

Bạn có thể sử dụng chức năng

from math import hypot

pts = [
    (10,10),
    (10,11),
    (20,11),
    (20,10),
    (10,10),
    ]

# Py2 syntax - no longer allowed in Py3
# ptdiff = lambda (p1,p2): (p1[0]-p2[0], p1[1]-p2[1])
ptdiff = lambda p1, p2: (p1[0]-p2[0], p1[1]-p2[1])

diffs = (ptdiff(p1, p2) for p1, p2 in zip (pts, pts[1:]))
path = sum(hypot(*d) for d in  diffs)
print(path)
6 để có được khoảng cách Euclide giữa hai điểm trong Python. Ví dụ, hãy để sử dụng nó, hãy 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 tuple.

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)

Output:

7.0710678118654755

Chúng tôi nhận được giá trị giống như trên.

Khoảng cách Euclide bằng thư viện import math p1 = [4, 0] p2 = [6, 6] distance = math.sqrt( ((p1[0]-p2[0])**2)+((p1[1]-p2[1])**2) ) print(distance) 0

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 toán trong Numpy bằng hàm

import math
p1 = [4, 0]
p2 = [6, 6]
distance = math.sqrt( ((p1[0]-p2[0])**2)+((p1[1]-p2[1])**2) )

print(distance)

4.

from math import hypot

pts = [
    (10,10),
    (10,11),
    (20,11),
    (20,10),
    (10,10),
    ]

# Py2 syntax - no longer allowed in Py3
# ptdiff = lambda (p1,p2): (p1[0]-p2[0], p1[1]-p2[1])
ptdiff = lambda p1, p2: (p1[0]-p2[0], p1[1]-p2[1])

diffs = (ptdiff(p1, p2) for p1, p2 in zip (pts, pts[1:]))
path = sum(hypot(*d) for d in  diffs)
print(path)
1

Output:

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 tôi vượt qua sự khác biệt giữa các điểm A và B như một mảng numpy cho hàm

import math
p1 = [4, 0]
p2 = [6, 6]
distance = math.sqrt( ((p1[0]-p2[0])**2)+((p1[1]-p2[1])**2) )

print(distance)

5.

Khoảng cách Euclide bằng thư viện from math import hypot pts = [ (10,10), (10,11), (20,11), (20,10), (10,10), ] # Py2 syntax - no longer allowed in Py3 # ptdiff = lambda (p1,p2): (p1[0]-p2[0], p1[1]-p2[1]) ptdiff = lambda p1, p2: (p1[0]-p2[0], p1[1]-p2[1]) diffs = (ptdiff(p1, p2) for p1, p2 in zip (pts, pts[1:])) path = sum(hypot(*d) for d in diffs) print(path) 9

Thư viện

from math import hypot

pts = [
    (10,10),
    (10,11),
    (20,11),
    (20,10),
    (10,10),
    ]

# Py2 syntax - no longer allowed in Py3
# ptdiff = lambda (p1,p2): (p1[0]-p2[0], p1[1]-p2[1])
ptdiff = lambda p1, p2: (p1[0]-p2[0], p1[1]-p2[1])

diffs = (ptdiff(p1, p2) for p1, p2 in zip (pts, pts[1:]))
path = sum(hypot(*d) for d in  diffs)
print(path)
9 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
import math
p1 = [4, 0]
p2 = [6, 6]
distance = math.sqrt( ((p1[0]-p2[0])**2)+((p1[1]-p2[1])**2) )

print(distance)

8 có sẵn trong
import math
p1 = [4, 0]
p2 = [6, 6]
distance = math.sqrt( ((p1[0]-p2[0])**2)+((p1[1]-p2[1])**2) )

print(distance)

9 để tính khoảng cách Euclide giữa hai điểm trong Python.

from math import hypot

pts = [
    (10,10),
    (10,11),
    (20,11),
    (20,10),
    (10,10),
    ]

# Py2 syntax - no longer allowed in Py3
# ptdiff = lambda (p1,p2): (p1[0]-p2[0], p1[1]-p2[1])
ptdiff = lambda p1, p2: (p1[0]-p2[0], p1[1]-p2[1])

diffs = (ptdiff(p1, p2) for p1, p2 in zip (pts, pts[1:]))
path = sum(hypot(*d) for d in  diffs)
print(path)
3

Output:

7.0710678118654755

Chúng tôi nhận được kết quả tương tự như trên. Để biết thêm về hàm khoảng cách, hãy tham khảo tài liệu của nó.

Với điều này, chúng tôi đi đến cuối hướng dẫn này. Các ví dụ và kết quả mã được trình bày trong hướng dẫn này đã được triển khai trong A & NBSP; Jupyter Notebook & NBSP; với hạt nhân Python (phiên bản 3.8.3) có phiên bản Numpy 1.18.5 và Pandas phiên bản 1.0.5


Đăng ký nhận bản tin của chúng tôi để biết thêm hướng dẫn và hướng dẫn thông tin. Chúng tôi không spam và bạn có thể từ chối bất cứ lúc nào.
We do not spam and you can opt out any time.

  • Hướng dẫn python distance between two points - python khoảng cách giữa hai điểm

    Piyush là một nhà khoa học 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. Trong quá khứ, anh ta làm việc như một nhà khoa học dữ liệu cho ZS và có bằng kỹ sư từ IIT Roorkee. Sở thích của anh ấy bao gồm xem cricket, đọc sách và làm việc trên các dự án phụ.

    Xem tất cả các bài viết

Làm thế nào để bạn tìm thấy khoảng cách giữa hai điểm trong Python?

Phương thức toán học () trả về khoảng cách Euclide giữa hai điểm (p và q), trong đó p và q là tọa độ của điểm đó.Lưu ý: Hai điểm (P và Q) phải có cùng kích thước. dist() method returns the Euclidean distance between two points (p and q), where p and q are the coordinates of that point. Note: The two points (p and q) must be of the same dimensions.

Làm cách nào để tìm khoảng cách giữa 2 điểm?

Khoảng cách giữa hai điểm là chiều dài của phân đoạn dòng kết nối hai điểm trong một mặt phẳng.Công thức để tìm khoảng cách giữa hai điểm thường được đưa ra bởi d = √ ((x2 - x1) ² + (y2 - y1) ²).Công thức này được sử dụng để tìm khoảng cách giữa hai điểm trên mặt phẳng tọa độ hoặc mặt phẳng X-Y.d=√((x2 – x1)² + (y2 – y1)²). This formula is used to find the distance between any two points on a coordinate plane or x-y plane.

Làm thế nào để bạn tìm thấy khoảng cách giữa hai điểm trong OpenCV Python?

Khoảng cách sử dụng √ [(x₂ - x₁) ² + (y₂ - y₁) ²].√[(x₂ - x₁)² + (y₂ - y₁)²].