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
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.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]
Lưu ý: Hai điểm [P và Q] phải có cùng kích thước.
Cú pháp
Sự mô tả | P |
Yêu cầu. Chỉ định điểm 1 | Q. |
Yêu cầu. Chỉ định điểm 2
Giá trị trở lại: |
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]
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:
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:
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ụ.
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:
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.
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
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]
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
import math
p1 = [4, 0]
p2 = [6, 6]
distance = math.sqrt[ [[p1[0]-p2[0]]**2]+[[p1[1]-p2[1]]**2] ]
print[distance]
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]
1Output:
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
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]
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]
3Output:
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.
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