基于Numpy计算数据对象x=[2,4,3,6,8,2]和y=[1,4,2,7,5,3]的几种常见的距离度量,其中闵可夫斯基距离中的p取值为2,并给出代码
时间: 2023-06-03 15:04:09 浏览: 447
两个数据对象的距离度量是评估它们之间的距离或相似性的一种方法。下面是几种常见的距离度量方法:
1. 曼哈顿距离(Manhattan distance): 两个数据对象各个维度分量差的绝对值之和。
2. 欧几里得距离(Euclidean distance): 两个数据对象各个维度分量差的平方和的开方。
3. 切比雪夫距离(Chebyshev distance):两个数据对象各个维度分量差的最大绝对值。
4. 闵可夫斯基距离(Minkowski distance): 两个数据对象各个维度分量差的绝对值的p次方和的1/p次方,其中p是一个正整数或无限大。
下面是使用Numpy库计算x=[2,4,3,6,8,2]和y=[1,4,2,7,5,3]各种距离度量的代码示例:
```python
import numpy as np
x = np.array([2,4,3,6,8,2])
y = np.array([1,4,2,7,5,3])
# 曼哈顿距离
manhattan_dist = np.sum(np.abs(x - y))
print("曼哈顿距离为:", manhattan_dist)
# 欧几里得距离
euclidean_dist = np.sqrt(np.sum((x - y) ** 2))
print("欧几里得距离为:", euclidean_dist)
# 切比雪夫距离
chebyshev_dist = np.max(np.abs(x - y))
print("切比雪夫距离为:", chebyshev_dist)
# 闵可夫斯基距离,p=2
minkowski2_dist = np.power(np.sum(np.power(np.abs(x - y), 2)), 1/2)
print("闵可夫斯基距离,p=2:", minkowski2_dist)
```
输出结果为:
```
曼哈顿距离为: 9
欧几里得距离为: 4.58257569495584
切比雪夫距离为: 3
闵可夫斯基距离,p=2: 4.58257569495584
```
阅读全文