欢迎访问我的网站,希望内容对您有用,感兴趣的可以加入免费知识星球。

欧几里得距离

算法 迷途小书童 4年前 (2019-11-30) 9740次浏览 0个评论

软硬件环境

  • ubuntu 18.04 64bit
  • numpy 1.12.1

前言

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

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

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

欧几里得距离的数学公式

euclidean distance

代码实现

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

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2018-08-17 16:31:07
# @Author  : xugaoxiang (xugx.ai@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))

执行结果显示

5.19615242271

参考资料

喜欢 (3)

您必须 登录 才能发表评论!

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

请关闭 Adblock 等类似浏览器插件,然后刷新页面访问,感谢您的支持!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.