使用Python编写一个能计算样本间欧式距离与曼哈顿距离的方法。头歌
时间: 2024-10-17 12:11:51 浏览: 82
当然可以,首先我们来解释一下欧式距离(Euclidean Distance)和曼哈顿距离(Manhattan Distance)。欧式距离是从点A到点B沿着X轴和Y轴移动的直线距离;而曼哈顿距离则是沿着坐标轴的格子线移动的距离,对于二维空间中的点(x1, y1)和(x2, y2),它们分别如下:
1. 欧式距离(L2距离): sqrt((x2-x1)^2 + (y2-y1)^2)
2. 曼哈顿距离(L1距离): |x2-x1| + |y2-y1|
下面是一个简单的Python函数,用于计算两个向量之间的这两种距离:
```python
import math
def calculate_distances(vector1, vector2):
euclidean_distance = math.sqrt(sum([(a - b) ** 2 for a, b in zip(vector1, vector2)]))
manhattan_distance = sum([abs(a - b) for a, b in zip(vector1, vector2)])
return euclidean_distance, manhattan_distance
# 示例使用
vector_a = [1, 2]
vector_b = [4, 5]
euclidean, manhattan = calculate_distances(vector_a, vector_b)
print(f"Euclidean distance: {euclidean}")
print(f"Manhattan distance: {manhattan}")
阅读全文