以下内容转自:https://blog.csdn.net/kancy110/article/details/75675574?utm_source=blogxgwz4
scipy.spatial.distance.cdist(XA, XB, metric='euclidean', p=None, V=None, VI=None, w=None),该函数用于计算两个输入集合的距离,通过metric参数指定计算距离的不同方式得到不同的距离度量值。
metric的取值如下:
chebyshev:切比雪夫距离
correlation:相关系数
cosine:余弦夹角
euclidean:欧式距离
hamming:汉明距离
jaccard:杰卡德相似系数
mahalanobis:马氏距离
minkowski:闵可夫斯基距离
seuclidean:标准化欧式距离
from scipy.spatial import distance
import numpy as np
x1 =np.array([(1,3),(2,4),(5,6)])
x2 =np.array([(3,7),(4,8),(6,9)])
x3 =(1,3)
x4 =(3,7)
#cdist中metric默认参数是欧式距离'euclidean'
y1=distance.cdist(x1,x2,metric='euclidean')
y2=distance.cdist(x1,x2)
#distance.euclidean()只能输入一唯向量,输出结果是float
y3=distance.euclidean(x3,x4)
print('y1:',y1,'type:',type(y1),'y2:',y2,'type:',type(y2),'y3:',y3,'type:',type(y3))
'''
Out[1]:
y1: [[4.47213595 5.83095189 7.81024968]
[3.16227766 4.47213595 6.40312424]
[2.23606798 2.23606798 3.16227766]] type: <class 'numpy.ndarray'>
y2: [[4.47213595 5.83095189 7.81024968]
[3.16227766 4.47213595 6.40312424]
[2.23606798 2.23606798 3.16227766]] type: <class 'numpy.ndarray'>
y3: 4.47213595499958 type: <class 'numpy.float64'>
'''