0
点赞
收藏
分享

微信扫一扫

python计算距离矩阵

Python计算距离矩阵

在数据分析和机器学习领域,计算距离矩阵是一个常见的任务。距离矩阵是根据给定的一组数据计算出的一个矩阵,其中每个元素表示两个数据点之间的距离。这个矩阵可以用于聚类、分类、降维等任务。Python提供了许多库和函数来计算距离矩阵,本文将介绍一些常用的方法,并提供相应的代码示例。

欧氏距离

欧氏距离是最常用的距离度量方法之一,它衡量的是两个点之间的直线距离。在二维空间中,可以通过勾股定理计算欧氏距离,而在更高维度的空间中,可以使用相似的方法。

import numpy as np

def euclidean_distance(x, y):
    return np.sqrt(np.sum((x - y) ** 2))

# 示例
x = np.array([0, 0])
y = np.array([3, 4])
print(euclidean_distance(x, y))  # 输出 5.0

曼哈顿距离

曼哈顿距离是另一种常见的距离度量方法,它衡量的是两个点之间沿坐标轴的绝对距离之和。在二维空间中,可以通过计算两点之间的水平和垂直距离之和得到曼哈顿距离,而在更高维度的空间中,可以使用相似的方法。

def manhattan_distance(x, y):
    return np.sum(np.abs(x - y))

# 示例
x = np.array([0, 0])
y = np.array([3, 4])
print(manhattan_distance(x, y))  # 输出 7

闵可夫斯基距离

闵可夫斯基距离是一种通用的距离度量方法,它是欧氏距离和曼哈顿距离的一种推广。闵可夫斯基距离可以通过以下公式计算:

![闵可夫斯基距离公式](

其中x和y是要比较的两个数据点,n是数据点的维度,p是一个可变参数,当p=1时,计算的是曼哈顿距离,当p=2时,计算的是欧氏距离。

def minkowski_distance(x, y, p):
    return np.power(np.sum(np.power(np.abs(x - y), p)), 1 / p)

# 示例
x = np.array([0, 0])
y = np.array([3, 4])
print(minkowski_distance(x, y, 2))  # 输出 5.0,等同于欧氏距离
print(minkowski_distance(x, y, 1))  # 输出 7,等同于曼哈顿距离

切比雪夫距离

切比雪夫距离是一种距离度量方法,它衡量的是两个点之间在各个坐标轴上的最大差值。在二维空间中,切比雪夫距离等于两点之间的坐标差的最大值。

def chebyshev_distance(x, y):
    return np.max(np.abs(x - y))

# 示例
x = np.array([0, 0])
y = np.array([3, 4])
print
举报

相关推荐

0 条评论