曼哈顿距离(Manhattan distance)

简介: 曼哈顿距离(Manhattan distance),也称为城市街区距离(City block distance)或L1距离(L1 distance),是两个点在标准坐标系上的绝对值距离之和。

曼哈顿距离(Manhattan distance),也称为城市街区距离(City block distance)或L1距离(L1 distance),是两个点在标准坐标系上的绝对值距离之和。

对于二维平面上的两个点A(x1, y1)和B(x2, y2),它们之间的曼哈顿距离可以通过以下公式计算:

d(A, B) = |x1 - x2| + |y1 - y2|

曼哈顿距离可以推广到更高维度的空间。对于n维空间中的两个点A(x1, x2, ..., xn)和B(y1, y2, ..., yn),它们之间的曼哈顿距离可以表示为:

d(A, B) = |x1 - y1| + |x2 - y2| + ... + |xn - yn|

曼哈顿距离的应用非常广泛,特别是在计算机视觉、聚类分析、路径规划等领域。

以下是一个简单的Python代码示例,演示如何计算两个二维点之间的曼哈顿距离:

python
Copy
def manhattan_distance(point1, point2):
distance = abs(point1[0] - point2[0]) + abs(point1[1] - point2[1])
return distance

示例点A和点B

pointA = (1, 2)
pointB = (4, 6)

计算曼哈顿距离

distance = manhattan_distance(pointA, pointB)

print("曼哈顿距离:", distance)
运行以上代码,将会输出点A(1, 2)和点B(4, 6)之间的曼哈顿距离为 7。

在计算机视觉中,曼哈顿距离常用于图像相似性度量、目标检测中的边界框匹配等。在聚类分析中,曼哈顿距离可以用作一种距离度量,例如K-means算法中的簇中心更新。在路径规划中,曼哈顿距离可以用作启发式函数,例如A*搜索算法中的估计代价。

《数据挖掘导论》(Introduction to Data Mining)- Pang-Ning Tan, Michael Steinbach, Vipin Kumar:这本书介绍了数据挖掘的基本概念和技术,其中包括曼哈顿距离的讲解和应用示例。

《算法导论》(Introduction to Algorithms)- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein:这本经典的计算机算法教材包含了曼哈顿距离的讨论,特别是在几何算法和近似算法方面的应用。

相关论文和研究文章:在学术搜索引擎(如Google Scholar)上搜索关键词 "Manhattan distance" 或 "L1 distance",可以找到与曼哈顿距离相关的研究论文和文章,涵盖了不同领域的应用。

网络教程和博客文章:在网上搜索关键词 "Manhattan distance explained" 或 "L1 distance tutorial",你可以找到很多教程和博客文章,介绍曼哈顿距离的概念、计算方法以及在不同领域的应用。

Coursera 和 Udemy:这些在线学习平台提供各种与数据科学、机器学习和计算机视觉相关的课程,其中一些课程会涉及到曼哈顿距离的讲解和实践。

目录
相关文章
|
存储 Python
海明距离(Hamming Distance)
海明距离(Hamming Distance)是用来衡量两个二进制数之间差异程度的指标,它表示两个二进制数之间最多有多少个比特的差异。海明距离可以用于衡量数据传输或存储中的错误率,以及检测噪声干扰。 海明距离的计算方法是:对于两个 n 位二进制数,将它们进行逐位比较,如果对应位上的数字不同,则计算距离时增加 1。然后将所有位上的距离加在一起,得到海明距离。
1770 1
五种常用距离的代码实现:欧式距离、曼哈顿距离、闵可夫斯基距离、余弦相似度、杰卡德距离
五种常用距离的代码实现:欧式距离、曼哈顿距离、闵可夫斯基距离、余弦相似度、杰卡德距离
|
机器学习/深度学习 算法 Python
欧几里得距离(Euclidean distance)
欧几里得距离(Euclidean distance)是在数学中常用于衡量两个点之间的距离的一种方法。它在几何学和机器学习等领域都有广泛的应用。欧几里得距离基于两点之间的直线距离,可以看作是在一个多维空间中测量两个点之间的直线距离。
740 1
|
机器学习/深度学习 搜索推荐 数据挖掘
常见的几种距离量度(欧式距离、曼哈顿距离、切比雪夫距离等)
在机器学习和数据挖掘中,我们经常需要计算样本之间的相似度,通常的做法是计算样本之间的距离。本文介绍几种常用的距离量度方法。
975 0
|
机器学习/深度学习
【欧拉计划第 6 题】和的平方与平方的和差值 Sum square difference
【欧拉计划第 6 题】和的平方与平方的和差值 Sum square difference
166 0
LeetCode之Hamming Distance
LeetCode之Hamming Distance
123 0
|
算法
曼哈顿距离和欧式距离
曼哈顿距离和欧式距离
524 0
曼哈顿距离和欧式距离
|
机器学习/深度学习 Python 算法框架/工具
常见距离公式 numpy 实现
在使用 keras 或者使用 tf 做深度学习时,通常有些内容需要计算距离来作为判定相似程度的依据,如下列举一些常见的距离公式: def minkowski_distance(vec1, vec2, p=3): """ 闵氏距离 ...
1234 0
下一篇
DataWorks