使用numpy计算各种向量距离

Posted Bill_H

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用numpy计算各种向量距离相关的知识,希望对你有一定的参考价值。

import numpy as np

def euclidean_distance(vec1, vec2):
    \'\'\'欧氏距离\'\'\'
    return np.linalg.norm(vec1-vec2)

def cosine_similarity(vec1, vec2):
    \'\'\'向量夹角的余弦值\'\'\'
    return np.dot(vec1,vec2)/(np.linalg.norm(vec1)*(np.linalg.norm(vec2)))
    
def angle(vec1, vec2, degree=False):
    \'\'\'向量夹角,通过degree=True切换弧度制到角度制\'\'\'
    angle = np.arccos(np.dot(vec1,vec2)/(np.linalg.norm(vec1)*(np.linalg.norm(vec2))))
    if degree:
        angle = angle*180/np.pi
    return angle

以上是关于使用numpy计算各种向量距离的主要内容,如果未能解决你的问题,请参考以下文章

Numpy Broadcast 执行欧式距离矢量化

Matlab求两个向量之间的各种距离

Python (3) 如何计算欧式距离

NumPy之计算两个矩阵的成对平方欧氏距离

NumPy之计算两个矩阵的成对平方欧氏距离

numpy - 两点与形状向量之间的距离(n,2)