Python如何计算两点距离

引言

在现实世界中,计算两点之间的距离是一项常见的任务。无论是在地理学、物理学还是计算机科学中,都需要使用距离来衡量物体之间的关系。Python作为一种强大的编程语言,提供了多种方法来计算两个点之间的距离。本文将介绍几种常见的方法,并通过一个实际问题的示例来展示它们的用法。

方法一:欧几里得距离

欧几里得距离也称为直线距离,是最常用的计算两点距离的方法。它是计算两个点之间的直线距离的算法,可以用于平面上的点,也可以用于三维空间中的点。欧几里得距离的计算公式如下:

distance = sqrt((x2 - x1)^2 + (y2 - y1)^2)

其中,(x1, y1)和(x2, y2)是两个点的坐标。在Python中,可以使用math模块中的sqrt函数来计算平方根。下面是一个示例,演示如何使用欧几里得距离计算两个点之间的距离:

import math

def euclidean_distance(x1, y1, x2, y2):
    distance = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
    return distance

# 示例数据
point1 = (1, 2)
point2 = (4, 6)

# 计算距离
distance = euclidean_distance(point1[0], point1[1], point2[0], point2[1])
print("两点之间的距离为:", distance)

方法二:曼哈顿距离

曼哈顿距离也称为城市街区距离,是另一种计算两点之间距离的方法。它是计算两个点之间的最短路径的算法,路径只能沿着水平和垂直方向移动。曼哈顿距离的计算公式如下:

distance = |x2 - x1| + |y2 - y1|

其中,(x1, y1)和(x2, y2)是两个点的坐标。在Python中,可以直接使用绝对值函数来计算曼哈顿距离。下面是一个示例,演示如何使用曼哈顿距离计算两个点之间的距离:

def manhattan_distance(x1, y1, x2, y2):
    distance = abs(x2 - x1) + abs(y2 - y1)
    return distance

# 示例数据
point1 = (1, 2)
point2 = (4, 6)

# 计算距离
distance = manhattan_distance(point1[0], point1[1], point2[0], point2[1])
print("两点之间的距离为:", distance)

实际问题示例:计算两个城市之间的距离

现在,假设我们有一个问题要解决:如何计算两个城市之间的距离?我们可以使用上述提到的欧几里得距离或曼哈顿距离。

让我们考虑以下这个示例:假设我们有一个城市列表,其中包含了五个城市的坐标,分别是北京(39.9, 116.4)、上海(31.2, 121.4)、广州(23.1, 113.3)、深圳(22.5, 114.1)和成都(30.6, 104.1)。

我们可以使用欧几里得距离来计算这些城市之间的距离,并根据计算结果绘制关系图。下面是代码示例:

import math
import matplotlib.pyplot as plt

def euclidean_distance(x1, y1, x2, y2):
    distance = math.sqrt((x2 - x1)**