基于Numpy计算数据对象x=[2,4,3,6,8,2]和y=[1,4,2,7,5,3]的几种常见的距离度量,其中闵可夫斯基距离中的p取值为2,并给出代码
时间: 2023-06-03 21:04:02 浏览: 59
您好,以下是几种常见的距离度量和代码实现:
1. 欧氏距离:
def euclidean_distance(x, y):
return np.sqrt(np.sum(np.square(x - y)))
# 计算x和y之间的欧氏距离
x = np.array([2,4,3,6,8,2])
y = np.array([1,4,2,7,5,3])
print("欧氏距离为:", euclidean_distance(x, y))
2. 曼哈顿距离:
def manhattan_distance(x, y):
return np.sum(np.abs(x - y))
# 计算x和y之间的曼哈顿距离
x = np.array([2,4,3,6,8,2])
y = np.array([1,4,2,7,5,3])
print("曼哈顿距离为:", manhattan_distance(x, y))
3. 切比雪夫距离:
def chebyshev_distance(x, y):
return np.max(np.abs(x - y))
# 计算x和y之间的切比雪夫距离
x = np.array([2,4,3,6,8,2])
y = np.array([1,4,2,7,5,3])
print("切比雪夫距离为:", chebyshev_distance(x, y))
4. 闵可夫斯基距离:
def minkowski_distance(x, y, p=2):
return np.power(np.sum(np.power(np.abs(x - y), p)), 1/p)
# 计算x和y之间的闵可夫斯基距离
x = np.array([2,4,3,6,8,2])
y = np.array([1,4,2,7,5,3])
p = 2
print("闵可夫斯基距离为:", minkowski_distance(x, y, p)) # 当p=2时,就是欧氏距离
希望对您有所帮助!