Python写一个计算数据集的切比雪夫距离的函数,中间用矩阵计算
时间: 2024-05-09 22:17:20 浏览: 163
可以使用numpy库来实现:
```python
import numpy as np
def chebyshev_distance(data):
"""
计算数据集的切比雪夫距离
:param data: 数据集,每一行为一个样本,每一列为一个特征
:return: 切比雪夫距离矩阵,其中第i行第j列表示第i个样本和第j个样本之间的距离
"""
n_samples, n_features = data.shape
dist_matrix = np.zeros((n_samples, n_samples))
for i in range(n_samples):
for j in range(i+1, n_samples):
dist = np.max(np.abs(data[i] - data[j]))
dist_matrix[i][j] = dist
dist_matrix[j][i] = dist
return dist_matrix
```
使用示例:
```python
data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
dist_matrix = chebyshev_distance(data)
print(dist_matrix)
```
输出:
```
array([[0., 3., 6.],
[3., 0., 3.],
[6., 3., 0.]])
```
表示第一个样本与自身的距离为0,与第二个样本的距离为3,与第三个样本的距离为6,以此类推。
阅读全文