Python khoảng cách giữa hai danh sách

Trong thế giới toán học, khoảng cách ngắn nhất giữa hai điểm trong bất kỳ chiều nào được gọi là khoảng cách Euclide. Nó là căn bậc hai của tổng bình phương hiệu giữa hai điểm

euclidean distance formula

Trong Python, các mô-đun numpy, scipy được trang bị rất tốt các hàm để thực hiện các phép toán và tính toán đoạn thẳng này giữa hai điểm

Trong hướng dẫn này, chúng ta sẽ thảo luận về các phương pháp khác nhau để tính khoảng cách Euclide giữa các tọa độ

Sử dụng mô-đun NumPy để tìm khoảng cách Euclide giữa hai điểm

Mô-đun numpy có thể được sử dụng để tìm khoảng cách cần thiết khi tọa độ ở dạng mảng. Nó có hàm norm(), có thể trả về định mức vectơ của một mảng. Nó có thể giúp tính toán Khoảng cách Euclide giữa hai tọa độ, như hình bên dưới

import numpy as np
a = np.array((1, 2, 3))
b = np.array((4, 5, 6))

dist = np.linalg.norm(a-b)

print(dist)

đầu ra

Chúng ta cũng có thể trực tiếp thực hiện công thức toán học bằng cách sử dụng mô-đun numpy. Đối với phương pháp này, chúng ta sẽ sử dụng hàm numpy.sum(), trả về tổng các phần tử và hàm numpy.square() sẽ trả về bình phương của các phần tử

import numpy as np
a = np.array((1, 2, 3))
b = np.array((4, 5, 6))

dist = np.sqrt(np.sum(np.square(a-b)))

print(dist)

đầu ra

Hàm numpy.sqrt() cung cấp căn bậc hai của giá trị

Một cách khác để thực hiện công thức Khoảng cách Euclide là sử dụng hàm dot(). Chúng ta có thể tìm tích vô hướng của hiệu các điểm và chuyển vị của nó, trả về tổng bình phương

Ví dụ,

import numpy as np
a = np.array((1, 2, 3))
b = np.array((4, 5, 6))

temp = a-b
dist = np.sqrt(np.dot(temp.T, temp))

print(dist)

đầu ra

Sử dụng hàm import numpy as np a = np.array((1, 2, 3)) b = np.array((4, 5, 6)) dist = np.sqrt(np.sum(np.square(a-b))) print(dist) 0 để tìm khoảng cách Euclide giữa hai điểm

Chúng tôi đã thảo luận về các phương pháp khác nhau để tính Khoảng cách Euclide bằng mô-đun numpy. Tuy nhiên, các phương pháp này có thể hơi chậm nên chúng tôi có sẵn phương pháp thay thế nhanh hơn

Thư viện scipy có nhiều chức năng tính toán khoa học và toán học. Hàm

import numpy as np
a = np.array((1, 2, 3))
b = np.array((4, 5, 6))

dist = np.sqrt(np.sum(np.square(a-b)))

print(dist)
0 trả về Khoảng cách Euclide giữa hai điểm

Ví dụ,

from scipy.spatial import distance
a = (1, 2, 3)
b = (4, 5, 6)

print(distance.euclidean(a, b))

đầu ra

Sử dụng hàm import numpy as np a = np.array((1, 2, 3)) b = np.array((4, 5, 6)) dist = np.sqrt(np.sum(np.square(a-b))) print(dist) 2 để tìm khoảng cách Euclide giữa hai điểm

Mô-đun

import numpy as np
a = np.array((1, 2, 3))
b = np.array((4, 5, 6))

dist = np.sqrt(np.sum(np.square(a-b)))

print(dist)
3 cũng có thể được sử dụng thay thế. Hàm
import numpy as np
a = np.array((1, 2, 3))
b = np.array((4, 5, 6))

dist = np.sqrt(np.sum(np.square(a-b)))

print(dist)
4 từ mô-đun này có thể trả về đoạn thẳng giữa hai điểm

Ví dụ,

from math import dist

a = (1, 2, 3)
b = (4, 5, 6)

print(dist(a,b))

đầu ra

Các phương thức mô-đun

import numpy as np
a = np.array((1, 2, 3))
b = np.array((4, 5, 6))

dist = np.sqrt(np.sum(np.square(a-b)))

print(dist)
5 và
import numpy as np
a = np.array((1, 2, 3))
b = np.array((4, 5, 6))

dist = np.sqrt(np.sum(np.square(a-b)))

print(dist)
3 là phương thức thay thế nhanh hơn cho các phương thức numpy và hoạt động khi tọa độ ở dạng Tuple hoặc danh sách

17.88854381999832
12.688577540449518
9_______12_______5 # Importing math module1
21.93171219946131
1# Python Program to explain math.dist() method1# Importing math module3
21.93171219946131
1
17.88854381999832
12.688577540449518
6# Importing math module3
21.93171219946131
1# Python Program to explain math.dist() method5# Importing math module3import5# Importing math module3# Importing math module4_______23_______3_______29_______8_______23_______7

Nói một cách đơn giản, khoảng cách Euclide là ngắn nhất giữa 2 điểm bất kể kích thước. Trong bài viết này để tìm khoảng cách Euclide, chúng ta sẽ sử dụng thư viện NumPy. Thư viện này dùng để thao tác với mảng nhiều chiều rất hiệu quả. Hãy thảo luận về một số cách để tìm khoảng cách Euclide bằng thư viện NumPy