Mảng 2D khoảng cách Python Manhattan

Trong hướng dẫn này, chúng ta sẽ xem xét cách tính khoảng cách Manhattan giữa hai điểm trong Python với sự trợ giúp của một số ví dụ

Khoảng cách Manhattan là gì?

Khoảng cách Manhattan [còn gọi là khoảng cách taxi] là tổng hiệu tuyệt đối giữa tọa độ của hai điểm. Hình ảnh sau đây minh họa việc tính toán khoảng cách Manhattan giữa các điểm A và B

Bạn có thể thấy rằng chúng tôi đang tính khoảng cách giữa hai điểm bằng cách di chuyển từ điểm A [1, 1] đến B [4, 3] [hoặc ngược lại] dọc theo các trục vuông góc

Công thức của khoảng cách Manhattan

Để tính khoảng cách Manhattan 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 [1, 1] và [4, 3] là 5. Công thức trên có thể được tổng quát hóa thành n chiều

Tính toán khoảng cách Manhattan trong Python

Có một số cách để tính khoảng cách Manhattan trong Python. Ví dụ: bạn có thể viết hàm tùy chỉnh của riêng mình hoặc sử dụng các phương thức có sẵn từ các thư viện như scipy. Hãy xem xét chúng với sự trợ giúp của các ví dụ

1. Chức năng tùy chỉnh trong Python

Trước khi chúng ta tiến hành các phương pháp có sẵn, hãy viết một hàm để lấy khoảng cách Manhattan giữa hai điểm với số lượng kích thước bất kỳ [giả sử cả hai điểm có cùng số lượng kích thước]

def get_manhattan_distance[p, q]:
    """ 
    Return the manhattan distance between points p and q
    assuming both to have the same number of dimensions
    """
    # sum of absolute difference between coordinates
    distance = 0
    for p_i,q_i in zip[p,q]:
        distance += abs[p_i - q_i]
    
    return distance

# check the function
a = [1, 1]
b = [4, 3]
# distance b/w a and b
d = get_manhattan_distance[a, b]
# display the result
print[d]

đầu ra

5

Bạn có thể thấy rằng chúng tôi nhận được kết quả chính xác cho các điểm [1,1] và [4,3]. Chức năng trên cũng hoạt động đối với các điểm có nhiều hơn 2 chiều. Ví dụ: hãy lấy khoảng cách giữa các điểm [1, 0, 2, 3] và [4, 4, 3, 1]

# check the function
a = [1, 0, 2, 3]
b = [4, 4, 3, 1]
# distance b/w a and b
d = get_manhattan_distance[a, b]
# display the result
print[d]

đầu ra

10

Chúng tôi nhận được 10 như đầu ra. Nếu chúng ta sử dụng công thức trên, chúng ta sẽ nhận được kết quả tương tự

Lưu ý rằng việc triển khai ở trên có thể được cải thiện hơn nữa bằng cách sử dụng các hoạt động được véc tơ hóa với sự trợ giúp của các mảng có nhiều mảng để tính toán sự khác biệt một cách hiệu quả

2. Khoảng cách Manhattan bằng Thư viện scipy

Thư viện scipy 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 __distance.cityblock[] có sẵn trong scipy.spatial để tính khoảng cách Manhattan giữa hai điểm trong Python

from scipy.spatial import distance

# two points
a = [1, 0, 2, 3]
b = [4, 4, 3, 1]
# mahattan distance b/w a and b
d = distance.cityblock[a, b]
# display the result
print[d]

đầu ra

10

Ta được kết quả tương tự như trên. Để biết thêm về chức năng này, hãy tham khảo

Sự khác biệt giữa Khoảng cách Manhattan và Khoảng cách Euclide

Khi đề cập đến khoảng cách giữa các điểm, chúng ta thường đề cập đến khoảng cách Euclide giữa chúng, được tính bằng cách lấy căn bậc hai của tổng bình phương hiệu giữa các tọa độ. Mặt khác, ở khoảng cách Manhattan, ta chỉ lấy tổng hiệu tuyệt đối giữa tọa độ của hai điểm

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] kernel có 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 hướng dẫn và hướng dẫn
Chúng tôi không spam và bạn có thể từ chối bất cứ lúc nào


Tác giả

  • 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ụ

    Lưới 2d khoảng cách Manhattan là gì?

    Khoảng cách Manhattan giữa hai điểm trên lưới là. Tổng khoảng cách dọc và ngang giữa chúng . Do đó, trong hình ảnh bên phải, khoảng cách Manhattan từ A đến B là tổng của khoảng cách từ A đến C [góc trên bên trái] và khoảng cách từ C đến B.

    Làm cách nào để tính khoảng cách Manhattan giữa hai tọa độ?

    Định nghĩa. Khoảng cách Manhattan giữa hai điểm x = [x 1, x 2, …, x n ] và y = [y 1, y 2, …, y n ] trong không gian n chiều là tổng các khoảng cách trong mỗi chiều. d[\mathbf{x,y}] ={ \sum \limits _{i=1}^{n}}\mid {x}_{ i} - {y}_ . .

    Khoảng cách Manhattan giữa 2 vectơ là gì?

    Khoảng cách Manhattan giữa hai vectơ [khối phố] là bằng một chuẩn của khoảng cách giữa các vectơ . Hàm khoảng cách [còn gọi là “số liệu”] có liên quan còn được gọi là số liệu “taxi cab”.

Chủ Đề