头歌使用Python编写一个能计算样本间欧式距离与曼哈顿距离的方法。
时间: 2024-12-26 08:28:24 浏览: 8
在Python中,我们可以定义两个函数来分别计算样本间的欧式距离(Euclidean Distance)和曼哈顿距离(Manhattan Distance)。这两种距离都是衡量两点间差异度的常用方式,在数据分析和机器学习中经常用到。
首先,我们定义计算欧式距离的函数:
```python
import math
def euclidean_distance(point1, point2):
"""计算两个点之间的欧式距离"""
return math.sqrt(sum((a - b) ** 2 for a, b in zip(point1, point2)))
# 示例:计算 (1, 2) 和 (3, 4) 的欧式距离
point1 = [1, 2]
point2 = [3, 4]
euclidean_dist = euclidean_distance(point1, point2)
```
接下来,我们定义计算曼哈顿距离的函数:
```python
def manhattan_distance(point1, point2):
"""计算两个点之间的曼哈顿距离,即绝对值之和"""
return sum(abs(a - b) for a, b in zip(point1, point2))
# 示例:计算 (1, 2) 和 (3, 4) 的曼哈顿距离
manhattan_dist = manhattan_distance(point1, point2)
```
相关问题
使用Python编写一个能计算样本间欧式距离与曼哈顿距离的方法。头歌
当然可以,首先我们来解释一下欧式距离(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}")
使用Python编写一个能计算样本间欧式距离与曼哈顿距离的方法。
下面是Python代码实现:
```python
import numpy as np
def euclidean_distance(x1, x2):
"""
计算两个样本之间的欧式距离
:param x1: 样本1,类型为numpy数组
:param x2: 样本2,类型为numpy数组
:return: 欧式距离,类型为float
"""
return np.sqrt(np.sum(np.power(x1 - x2, 2)))
def manhattan_distance(x1, x2):
"""
计算两个样本之间的曼哈顿距离
:param x1: 样本1,类型为numpy数组
:param x2: 样本2,类型为numpy数组
:return: 曼哈顿距离,类型为float
"""
return np.sum(np.absolute(x1 - x2))
```
使用示例:
```python
# 计算欧式距离
x1 = np.array([1, 2, 3])
x2 = np.array([4, 5, 6])
print("欧式距离:", euclidean_distance(x1, x2))
# 计算曼哈顿距离
x1 = np.array([1, 2, 3])
x2 = np.array([4, 5, 6])
print("曼哈顿距离:", manhattan_distance(x1, x2))
```
输出结果:
```
欧式距离: 5.196152422706632
曼哈顿距离: 9
```
阅读全文