zoukankan      html  css  js  c++  java
  • 欧几里得距离

    原文出处: https://xugaoxiang.com/2019/11/30/euclidean-distance/

    软硬件环境

    • ubuntu 18.04 64bit
    • numpy 1.12.1

    前言

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

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

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

    欧几里得距离的数学公式

    代码实现

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

    #!/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))
        

    执行结果显示

    5.19615242271
    

    参考资料

  • 相关阅读:
    C#的默认访问权限
    隐藏基类成员
    索引指示器的重载
    索引指示器
    vector
    string 函数
    细胞个数
    计蒜客 T1096 石头剪刀布
    计蒜客 T1125 判断字符串是否为回文
    计蒜客 T1152 成绩排序
  • 原文地址:https://www.cnblogs.com/Ph-one/p/12551899.html
Copyright © 2011-2022 走看看