scipy.spatial.distance.cdist

语法:scipy.spatial.distance.cdist(XA, XB, metric='euclidean', p=None, V=None, VI=None, w=None),该函数用于计算两个输入集合的距离,通过metric参数指定计算距离的不同方式得到不同的距离度量值

metric的取值如下:

 braycurtis
 canberra
 chebyshev:切比雪夫距离
 cityblock
 correlation:相关系数
 cosine:余弦夹角
 dice
 euclidean:欧式距离
 hamming:汉明距离
 jaccard:杰卡德相似系数
 kulsinski
 mahalanobis:马氏距离
 matching
 minkowski:闵可夫斯基距离
 rogerstanimoto
 russellrao
 seuclidean:标准化欧式距离
 sokalmichener
 sokalsneath
 sqeuclidean
 wminkowski
 yule

常见的欧氏距离计算:

In [1]: from scipy.spatial.distance import cdist
   ...: import numpy as np
   ...: x1 =np.array([(1,3),(2,4),(5,6)])
   ...: x2 =[(3,7),(4,8),(6,9)]
   ...: cdist(x1,x2,metric='euclidean')
   ...:
Out[1]:
array([[ 4.47213595,  5.83095189,  7.81024968],
       [ 3.16227766,  4.47213595,  6.40312424],
       [ 2.23606798,  2.23606798,  3.16227766]])
解析上述计算过程:结果数组中的第一行数据表示的是x1数组中第一个元素点与x2数组中各个元素点的距离,计算两点之间的距离

以点(1,3)与(3,7)点的距离为例:

In [2]: np.power((1-3)**2 +(3-7)**2,1/2)
Out[2]: 4.4721359549995796



  • 31
    点赞
  • 88
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值