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

Trong hướng dẫn này, bạn sẽ học cách sử dụng Python để tính khoảng cách Euclidian giữa hai điểm, có nghĩa là sử dụng Python để tìm khoảng cách giữa hai điểm. Bạn sẽ học cách tính khoảng cách giữa hai điểm theo hai chiều, cũng như bất kỳ số lượng kích thước nào khác.

Trước tiên, bạn sẽ học một cách ngây thơ để thực hiện việc này, sử dụng sum()square(), sau đó sử dụng sản phẩm

# Python Euclidian Distance using Naive Method

point_1 = (1,2)
point_2 = (4,7)

def naive_euclidian_distance(point1, point2):
    return sum([(point1[x] - point2[x]) ** 2 for x in range(len(point1))]) ** 0.5

print(naive_euclidian_distance(point_1, point_2))

# Returns 5.830951894845301
0 của một mảng được chuyển đổi, và cuối cùng, sử dụng
# Python Euclidian Distance using Naive Method

point_1 = (1,2)
point_2 = (4,7)

def naive_euclidian_distance(point1, point2):
    return sum([(point1[x] - point2[x]) ** 2 for x in range(len(point1))]) ** 0.5

print(naive_euclidian_distance(point_1, point_2))

# Returns 5.830951894845301
1 và
# Python Euclidian Distance using Naive Method

point_1 = (1,2)
point_2 = (4,7)

def naive_euclidian_distance(point1, point2):
    return sum([(point1[x] - point2[x]) ** 2 for x in range(len(point1))]) ** 0.5

print(naive_euclidian_distance(point_1, point_2))

# Returns 5.830951894845301
2. Bạn sẽ kết thúc hướng dẫn bằng cách hiểu được phương pháp nào là nhanh nhất.

Bắt đầu nào!

Câu trả lời nhanh: Sử dụng scipy từ khoảng cách () hoặc math.dist ()

Hướng dẫn shortest distance between two points python - khoảng cách ngắn nhất giữa hai điểm python
Tùy thuộc vào phiên bản Python của bạn, hãy sử dụng math.dist () (3.8+) để tính khoảng cách giữa hai điểm

  • Khoảng cách Euclidian giữa hai điểm là bao nhiêu?
  • Tìm khoảng cách Euclidian giữa hai điểm trong Python bằng Sum và Square
  • Sử dụng Numpy để tìm khoảng cách Euclidian
  • Sử dụng DOT để tìm khoảng cách giữa hai điểm trong Python
  • Sử dụng toán học để tìm khoảng cách Euclidian giữa hai điểm trong Python
  • Sử dụng Python và Scipy để tìm khoảng cách giữa hai điểm
  • Phương pháp nhanh nhất để tìm khoảng cách giữa hai điểm trong Python
  • Sự kết luận

Khoảng cách Euclidian biểu thị khoảng cách ngắn nhất giữa hai điểm. Bởi vì điều này, nó đại diện cho khoảng cách Pythagore giữa hai điểm, được tính toán bằng cách sử dụng:shortest distance between two points. Because of this, it represents the Pythagorean Distance between two points, which is calculated using:

d = √ [(x2 & nbsp; - x1) 2 & nbsp;+ (y2 & nbsp; - y1) 2]

Chúng ta có thể dễ dàng tính toán khoảng cách của các điểm của nhiều hơn hai chiều bằng cách tìm thấy sự khác biệt giữa các kích thước hai điểm, bình phương.

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

Khoảng cách Euclidian có nhiều cách sử dụng, đặc biệt là trong học máy. Ví dụ, chúng được sử dụng rộng rãi trong các hệ thống phân loại hàng xóm gần nhất K. Bởi vì điều này, hiểu các cách dễ dàng khác nhau để tính khoảng cách giữa hai điểm trong Python là một kỹ năng hữu ích (và thường cần thiết) để hiểu và học hỏi.

Để tìm hiểu thêm về khoảng cách Euclidian, hãy xem bài viết Wikipedia hữu ích này về nó.

Tìm khoảng cách Euclidian giữa hai điểm trong Python bằng Sum và Square

Sử dụng Numpy để tìm khoảng cách Euclidian

Sử dụng DOT để tìm khoảng cách giữa hai điểm trong Python

# Python Euclidian Distance using Naive Method

point_1 = (1,2)
point_2 = (4,7)

def naive_euclidian_distance(point1, point2):
    differences = [point1[x] - point2[x] for x in range(len(point1))]
    differences_squared = [difference ** 2 for difference in differences]
    sum_of_squares = sum(differences_squared)
    return sum_of_squares ** 0.5

print(naive_euclidian_distance(point_1, point_2))

# Returns 5.830951894845301

Sử dụng toán học để tìm khoảng cách Euclidian giữa hai điểm trong Python

  1. Sử dụng Python và Scipy để tìm khoảng cách giữa hai điểm
  2. Phương pháp nhanh nhất để tìm khoảng cách giữa hai điểm trong Python
  3. Sự kết luận

Khoảng cách Euclidian biểu thị khoảng cách ngắn nhất giữa hai điểm. Bởi vì điều này, nó đại diện cho khoảng cách Pythagore giữa hai điểm, được tính toán bằng cách sử dụng:

# Python Euclidian Distance using Naive Method

point_1 = (1,2)
point_2 = (4,7)

def naive_euclidian_distance(point1, point2):
    return sum([(point1[x] - point2[x]) ** 2 for x in range(len(point1))]) ** 0.5

print(naive_euclidian_distance(point_1, point_2))

# Returns 5.830951894845301

d = √ [(x2 & nbsp; - x1) 2 & nbsp;+ (y2 & nbsp; - y1) 2]

Chúng ta có thể dễ dàng tính toán khoảng cách của các điểm của nhiều hơn hai chiều bằng cách tìm thấy sự khác biệt giữa các kích thước hai điểm, bình phương. Check out my in-depth tutorial here, which covers off everything you need to know about creating and using list comprehensions in Python.

Khoảng cách Euclidian có nhiều cách sử dụng, đặc biệt là trong học máy. Ví dụ, chúng được sử dụng rộng rãi trong các hệ thống phân loại hàng xóm gần nhất K. Bởi vì điều này, hiểu các cách dễ dàng khác nhau để tính khoảng cách giữa hai điểm trong Python là một kỹ năng hữu ích (và thường cần thiết) để hiểu và học hỏi.

Sử dụng Numpy để tìm khoảng cách Euclidian

Sử dụng DOT để tìm khoảng cách giữa hai điểm trong Python

# Python Euclidian Distance using Sum and Product
import numpy as np

point_1 = (1,2)
point_2 = (4,7)

def numpy_euclidian_distance(point_1, point_2):
    array_1, array_2 = np.array(point_1), np.array(point_2)
    squared_distance = np.sum(np.square(array_1 - array_2))
    distance = np.sqrt(squared_distance)
    return distance

print(numpy_euclidian_distance(point_1, point_2))

# Returns: 5.830951894845301

Sử dụng toán học để tìm khoảng cách Euclidian giữa hai điểm trong Python

  1. Sử dụng Python và Scipy để tìm khoảng cách giữa hai điểm
  2. Phương pháp nhanh nhất để tìm khoảng cách giữa hai điểm trong Python
  3. Sự kết luận
  4. Khoảng cách Euclidian biểu thị khoảng cách ngắn nhất giữa hai điểm. Bởi vì điều này, nó đại diện cho khoảng cách Pythagore giữa hai điểm, được tính toán bằng cách sử dụng:
  5. d = √ [(x2 & nbsp; - x1) 2 & nbsp;+ (y2 & nbsp; - y1) 2]

Chúng ta có thể dễ dàng tính toán khoảng cách của các điểm của nhiều hơn hai chiều bằng cách tìm thấy sự khác biệt giữa các kích thước hai điểm, bình phương.

import numpy as np
def numpy_euclidian_distance_short(point_1, point_2):
    return np.sqrt(np.sum(np.square(np.array(point_1) - np.array(point_2))))

print(numpy_euclidian_distance_short(point_1, point_2))

# Returns: 5.830951894845301

Khoảng cách Euclidian có nhiều cách sử dụng, đặc biệt là trong học máy. Ví dụ, chúng được sử dụng rộng rãi trong các hệ thống phân loại hàng xóm gần nhất K. Bởi vì điều này, hiểu các cách dễ dàng khác nhau để tính khoảng cách giữa hai điểm trong Python là một kỹ năng hữu ích (và thường cần thiết) để hiểu và học hỏi.

Sử dụng DOT để tìm khoảng cách giữa hai điểm trong Python

Sử dụng toán học để tìm khoảng cách Euclidian giữa hai điểm trong Python

# Python Euclidian Distance using Numpy dot
import numpy as np

point_1 = (1,2)
point_2 = (4,7)

def numpy_dot_euclidian_distance(point1, point2):
    array1, array2 = np.array(point1), np.array(point2)
    differences = array1 - array2
    squared_sums = np.dot(differences.T, differences)
    distance = np.sqrt(squared_sums)

    return distance

print(numpy_dot_euclidian_distance(point_1, point_2))

# Returns 5.830951894845301

Sử dụng Python và Scipy để tìm khoảng cách giữa hai điểm I have an in-depth guide to different methods, including the one shown above, in my tutorial found here!

Phương pháp nhanh nhất để tìm khoảng cách giữa hai điểm trong Python

# Python Euclidian Distance using Numpy dot
import numpy as np

point_1 = (1,2)
point_2 = (4,7)

def numpy_dot_euclidian_distance(point1, point2):
    differences = np.array(point1) - np.array(point2)
    distance = np.sqrt(np.dot(differences.T, differences))

    return distance

print(numpy_dot_euclidian_distance(point_1, point_2))

# Returns 5.830951894845301

Trong phần tiếp theo, bạn sẽ học cách sử dụng thư viện

# Python Euclidian Distance using Sum and Product
import numpy as np

point_1 = (1,2)
point_2 = (4,7)

def numpy_euclidian_distance(point_1, point_2):
    array_1, array_2 = np.array(point_1), np.array(point_2)
    squared_distance = np.sum(np.square(array_1 - array_2))
    distance = np.sqrt(squared_distance)
    return distance

print(numpy_euclidian_distance(point_1, point_2))

# Returns: 5.830951894845301
3, được xây dựng ngay vào Python, để tính khoảng cách giữa hai điểm.

Sử dụng toán học để tìm khoảng cách Euclidian giữa hai điểm trong Python

Python được tích hợp tích hợp với một thư viện tiện dụng để xử lý các nhiệm vụ toán học thông thường, thư viện

# Python Euclidian Distance using Sum and Product
import numpy as np

point_1 = (1,2)
point_2 = (4,7)

def numpy_euclidian_distance(point_1, point_2):
    array_1, array_2 = np.array(point_1), np.array(point_2)
    squared_distance = np.sum(np.square(array_1 - array_2))
    distance = np.sqrt(squared_distance)
    return distance

print(numpy_euclidian_distance(point_1, point_2))

# Returns: 5.830951894845301
3. Bởi vì tính toán khoảng cách giữa hai điểm là một nhiệm vụ toán học phổ biến mà bạn gặp phải, thư viện Python
# Python Euclidian Distance using Sum and Product
import numpy as np

point_1 = (1,2)
point_2 = (4,7)

def numpy_euclidian_distance(point_1, point_2):
    array_1, array_2 = np.array(point_1), np.array(point_2)
    squared_distance = np.sum(np.square(array_1 - array_2))
    distance = np.sqrt(squared_distance)
    return distance

print(numpy_euclidian_distance(point_1, point_2))

# Returns: 5.830951894845301
3 đi kèm với hàm tích hợp gọi là hàm
# Python Euclidian Distance using Sum and Product
import numpy as np

point_1 = (1,2)
point_2 = (4,7)

def numpy_euclidian_distance(point_1, point_2):
    array_1, array_2 = np.array(point_1), np.array(point_2)
    squared_distance = np.sum(np.square(array_1 - array_2))
    distance = np.sqrt(squared_distance)
    return distance

print(numpy_euclidian_distance(point_1, point_2))

# Returns: 5.830951894845301
6.

Hàm

# Python Euclidian Distance using Sum and Product
import numpy as np

point_1 = (1,2)
point_2 = (4,7)

def numpy_euclidian_distance(point_1, point_2):
    array_1, array_2 = np.array(point_1), np.array(point_2)
    squared_distance = np.sum(np.square(array_1 - array_2))
    distance = np.sqrt(squared_distance)
    return distance

print(numpy_euclidian_distance(point_1, point_2))

# Returns: 5.830951894845301
6 có hai tham số, hai điểm của bạn và tính toán khoảng cách giữa các điểm này.

Hãy để xem cách chúng ta có thể tính toán khoảng cách Euclidian với hàm

# Python Euclidian Distance using Sum and Product
import numpy as np

point_1 = (1,2)
point_2 = (4,7)

def numpy_euclidian_distance(point_1, point_2):
    array_1, array_2 = np.array(point_1), np.array(point_2)
    squared_distance = np.sum(np.square(array_1 - array_2))
    distance = np.sqrt(squared_distance)
    return distance

print(numpy_euclidian_distance(point_1, point_2))

# Returns: 5.830951894845301
8:

# Python Euclidian Distance using math.dist
from math import dist

point_1 = (1,2)
point_2 = (4,7)

print(dist(point_1, point_2))

# Returns 5.830951894845301

Chúng ta có thể thấy ở đây rằng đây là một cách cực kỳ sạch sẽ để tính toán khoảng cách giữa hai điểm trong Python. Không chỉ tên hàm có liên quan đến những gì chúng tôi tính toán, mà nó còn tóm tắt rất nhiều phương trình toán học!

Trong phần tiếp theo, bạn sẽ học cách sử dụng thư viện

# Python Euclidian Distance using Naive Method

point_1 = (1,2)
point_2 = (4,7)

def naive_euclidian_distance(point1, point2):
    return sum([(point1[x] - point2[x]) ** 2 for x in range(len(point1))]) ** 0.5

print(naive_euclidian_distance(point_1, point_2))

# Returns 5.830951894845301
2 để tính khoảng cách giữa hai điểm.

Sử dụng Python và Scipy để tìm khoảng cách giữa hai điểm

Tương tự như ví dụ thư viện

# Python Euclidian Distance using Sum and Product
import numpy as np

point_1 = (1,2)
point_2 = (4,7)

def numpy_euclidian_distance(point_1, point_2):
    array_1, array_2 = np.array(point_1), np.array(point_2)
    squared_distance = np.sum(np.square(array_1 - array_2))
    distance = np.sqrt(squared_distance)
    return distance

print(numpy_euclidian_distance(point_1, point_2))

# Returns: 5.830951894845301
3 mà bạn đã học trong phần trên, thư viện
# Python Euclidian Distance using Naive Method

point_1 = (1,2)
point_2 = (4,7)

def naive_euclidian_distance(point1, point2):
    return sum([(point1[x] - point2[x]) ** 2 for x in range(len(point1))]) ** 0.5

print(naive_euclidian_distance(point_1, point_2))

# Returns 5.830951894845301
2 cũng đi kèm với một số chức năng toán học hữu ích và, tốt, khoa học, được tích hợp trong nó.

Hãy để sử dụng hàm

import numpy as np
def numpy_euclidian_distance_short(point_1, point_2):
    return np.sqrt(np.sum(np.square(np.array(point_1) - np.array(point_2))))

print(numpy_euclidian_distance_short(point_1, point_2))

# Returns: 5.830951894845301
2 từ mô -đun
import numpy as np
def numpy_euclidian_distance_short(point_1, point_2):
    return np.sqrt(np.sum(np.square(np.array(point_1) - np.array(point_2))))

print(numpy_euclidian_distance_short(point_1, point_2))

# Returns: 5.830951894845301
3 và tìm hiểu cách tính khoảng cách Euclidian giữa hai điểm:

# Python Euclidian Distance using scipy
from scipy.spatial import distance

point_1 = (1,2)
point_2 = (4,7)

print(distance.euclidean(point_1, point_2))

# Returns 5.830951894845301

Chúng ta có thể thấy ở đây rằng việc gọi hàm

import numpy as np
def numpy_euclidian_distance_short(point_1, point_2):
    return np.sqrt(np.sum(np.square(np.array(point_1) - np.array(point_2))))

print(numpy_euclidian_distance_short(point_1, point_2))

# Returns: 5.830951894845301
4 thậm chí còn cụ thể hơn hàm
# Python Euclidian Distance using Sum and Product
import numpy as np

point_1 = (1,2)
point_2 = (4,7)

def numpy_euclidian_distance(point_1, point_2):
    array_1, array_2 = np.array(point_1), np.array(point_2)
    squared_distance = np.sum(np.square(array_1 - array_2))
    distance = np.sqrt(squared_distance)
    return distance

print(numpy_euclidian_distance(point_1, point_2))

# Returns: 5.830951894845301
6 từ thư viện
# Python Euclidian Distance using Sum and Product
import numpy as np

point_1 = (1,2)
point_2 = (4,7)

def numpy_euclidian_distance(point_1, point_2):
    array_1, array_2 = np.array(point_1), np.array(point_2)
    squared_distance = np.sum(np.square(array_1 - array_2))
    distance = np.sqrt(squared_distance)
    return distance

print(numpy_euclidian_distance(point_1, point_2))

# Returns: 5.830951894845301
3. Cụ thể có thể giúp người đọc mã của bạn hiểu rõ những gì đang được tính toán, mà không cần bạn cần ghi lại bất cứ điều gì, giả sử, với một bình luận.

Bây giờ, bạn đã học được nhiều cách để tính khoảng cách Euclidian giữa hai điểm trong Python, hãy để so sánh các phương pháp này để xem cái nào là nhanh nhất.

Kiểm tra một số hướng dẫn Python khác về DataGy, bao gồm hướng dẫn đầy đủ của chúng tôi về Gấu trúc kiểu dáng và tổng quan toàn diện của chúng tôi về các bảng xoay vòng trong gấu trúc!

Phương pháp nhanh nhất để tìm khoảng cách giữa hai điểm trong Python

Trong các phần trước, bạn đã học được một số cách khác nhau để tính khoảng cách Euclidian giữa hai điểm trong Python. Trong mỗi phần, chúng tôi đã đề cập đến cách làm cho mã dễ đọc hơn và nhận xét về mức độ rõ ràng của cuộc gọi chức năng thực tế.

Chúng ta hãy xem xét thời gian này mất bao lâu, trong trường hợp bạn có thể tính toán khoảng cách giữa các điểm cho hàng triệu điểm và yêu cầu hiệu suất tối ưu.

Mỗi phương thức được chạy 7 lần, lặp lại ít nhất 10.000 lần mỗi cuộc gọi chức năng.

Phương phápThời gian để thực hiện
Phương pháp ngây thơ162 Pha
Numpy68 Pha
Numpy (chấm)64 Pha
Toán học2.47 Pha
scipy.distance71,5
So sánh thời gian thực hiện với tính toán khoảng cách Euclidian trong Python

Chúng ta có thể thấy rằng hàm

# Python Euclidian Distance using Sum and Product
import numpy as np

point_1 = (1,2)
point_2 = (4,7)

def numpy_euclidian_distance(point_1, point_2):
    array_1, array_2 = np.array(point_1), np.array(point_2)
    squared_distance = np.sum(np.square(array_1 - array_2))
    distance = np.sqrt(squared_distance)
    return distance

print(numpy_euclidian_distance(point_1, point_2))

# Returns: 5.830951894845301
8 là nhanh nhất. Vấn đề duy nhất ở đây là chức năng chỉ có sẵn trong Python 3,8 trở lên.

Sự kết luận

Trong bài đăng này, bạn đã học cách sử dụng Python để tính khoảng cách Euclidian giữa hai điểm. Khoảng cách Euclidian đo khoảng cách ngắn nhất giữa hai điểm và có nhiều ứng dụng học máy. Bạn nghiêng về cách tính toán điều này bằng một phương pháp ngây thơ, hai phương pháp sử dụng Numpy, cũng như các phương pháp sử dụng các thư viện toán học và Scipy.

Để tìm hiểu thêm về chức năng

# Python Euclidian Distance using Sum and Product
import numpy as np

point_1 = (1,2)
point_2 = (4,7)

def numpy_euclidian_distance(point_1, point_2):
    array_1, array_2 = np.array(point_1), np.array(point_2)
    squared_distance = np.sum(np.square(array_1 - array_2))
    distance = np.sqrt(squared_distance)
    return distance

print(numpy_euclidian_distance(point_1, point_2))

# Returns: 5.830951894845301
8, hãy xem tài liệu chính thức ở đây.

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

Khoảng cách ngắn nhất giữa hai điểm là một đường thẳng.Khoảng cách này có thể được tính bằng cách sử dụng công thức khoảng cách.Khoảng cách giữa hai điểm (x 1, y 1) và (x 2, y 2) có thể được xác định là d = (x 2 - x 1) 2 + (y 2 - y 1) 2.d = ( x 2 − x 1 ) 2 + ( y 2 − y 1 ) 2 .

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 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₁)²].

CDIST là gì?

hàm CDIST (mảng, trục = 0) tính toán khoảng cách giữa mỗi cặp của hai bộ sưu tập đầu vào.Tham số: Mảng: Mảng đầu vào hoặc đối tượng có các phần tử để tính khoảng cách giữa mỗi cặp của hai bộ sưu tập đầu vào.calculates the distance between each pair of the two collections of inputs. Parameters : array: Input array or object having the elements to calculate the distance between each pair of the two collections of inputs.