Scipy总结

计算空间距离:scipy.spatial.distance.cdist()

scipy.spatial.distance.cdist(XA, XB, metric='euclidean', *, out=None, **kwargs)

计算两个输入集合中每一对之间的距离。

参数:

array_like:像数组的类型,只包含使用从零开始,且自然递增的整数做键名,并且定义了length表示元素个数的对象,我们就认为它是类数组对象。

  • XAarray_like

    在 n 维空间中一个 \(m_A * n\)\(m_A\) 原始观测数组。输入转换为浮点型。

  • XBarray_like

    在 n 维空间中一个 \(m_B * n\)​ 的 \(m_B\)​ 原始观测数组。输入转换为浮点型。

  • metricstr or callable, optional ( 可调用或可选择的字符串 )

    要使用的距离度量。如果一个字符串,距离函数可以是 ‘ braycurtis’,‘ canberra’,‘ chebyshev’,‘ cityblock’,‘ correlation’,‘ cosine’,‘ dice’,‘ euclidean’,‘ hamming’,‘ jaccard’,‘ jensenshannon’,‘ kulsinski’,‘ mahalanobis’,‘ matching’,‘ minkowski’,‘ rogerstanimoto’,‘ russelll’,‘ seuclidean’,‘ sokalmichener’,‘ sokalath’,‘ euclidean’,‘ sqlkowski’,‘ wminkole’。

  • **kwargsdict, optional (可选的字典)

    度量的额外参数:参考每个度量文档获得所有可能参数的列表。

    一些可能的参数:

    标量( P ):适用于 Minkowski 的 p 范数,加权和不加权。默认值:2。

    权重( w ):类数组的权重向量,用于支持权重的度量(例如,Minkowski)。

    向量( V ):类数组的标准化欧几里德的方差向量。缺省值:var(vstack([XA,XB]), axis = 0, ddof = 1)

    逆矩阵( VI ):马氏协方差矩阵的逆矩阵。默认值:inv(cov(vstack([XA, XB].T))).T

返回值:

  • 返回值类型:ndarray

    返回一个 \(m_A * m_B\) 的距离矩阵。对于每个 \(i\)\(j\)​ ,度量dist(u=XA[i], v=XB[j])被计算并保存在第 \(ij\) 个条目中。

备注:

​ 如果 XA 和 XB 的列数不相同,则引发异常。

scipy.spatial.distance.cdist — SciPy v1.7.1 Manual

代码举例:

1
2
3
4
5
6
from scipy.spatial import distance
coords = [(35.0456, -85.2672),
(35.1174, -89.9711),
(35.9728, -83.9422),
(36.1667, -86.7833)]
distance.cdist(coords, coords, 'euclidean')

运行结果:

1
2
3
4
array([[ 0.    ,  4.7044,  1.6172,  1.8856],
[ 4.7044, 0. , 6.0893, 3.3561],
[ 1.6172, 6.0893, 0. , 2.8477],
[ 1.8856, 3.3561, 2.8477, 0. ]])

Scipy总结
https://excelius.xyz/scipy总结/
作者
Ther
发布于
2021年8月8日
许可协议