徐高翔的个人网站

欧几里得距离

2018-08-31

软硬件环境

  • ubuntu 18.04 64bit
  • numpy 1.12.1

前言

欧几里得距离,又称欧氏距离,是最常见的距离度量,衡量的是多维空间中各个点之间的绝对距离。在计算相似度(比如人脸识别)的场景下,欧几里得距离是比较直观、比较常见的一种相似度算法。欧氏距离越小,相似度越大;欧氏距离越大,相似度越小。

来自中文版维基百科的定义

在数学中,欧几里得距离或欧几里得度量是欧几里得空间中两点间“普通”(即直线)距离。使用这个距离,欧氏空间成为度量空间。相关联的范数称为欧几里得范数。较早的文献称之为毕达哥拉斯度量。

欧几里得距离的数学公式

代码实现

我们使用 numpy 这个科学计算库来计算欧几里得距离,代码也非常简单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2018-08-17 16:31:07
# @Author : xugaoxiang (djstava@gmail.com)
# @Link : link
# @Version : 1.0.0

import numpy as np

def get_edclidean_distance(vect1,vect2):
dist = np.sqrt(np.sum(np.square(vect1 - vect2)))
# 或者用numpy内建方法
# dist = numpy.linalg.norm(vect1 - vect2)
return dist

if __name__ == '__main__':

vect1 = np.array([1,2,3])
vect2 = np.array([4,5,6])

print(get_edclidean_distance(vect1, vect2))

执行结果显示

1
5.19615242271

参考资料

本文链接 https://xugaoxiang.com/2018/08/31/欧几里得距离/

推荐文章(由hexo文章推荐插件驱动)

Tags: ai
使用支付宝打赏
使用微信打赏

请博主喝咖啡!