今天一个偶然的机会体会到了python数据运算的强大。求一个数组各样本之间的距离仅简单的几句代码就行。看来真的技术改变世界啊。废话不多说,记下来怕以后忘记。
from scipy.spatial.distance import pdist, squareform
下面结合API文档标注一下具体用法:
1.X = pdist(X, 'euclidean')
计算数组X样本之间的欧式距离 返回值为 Y 为压缩距离元组或矩阵(以下等同)
2. X = pdist(X, 'minkowski', p)
计算数组样本之间的明氏距离
3. Y = pdist(X, 'cityblock')
计算数组样本之间的曼哈顿距离
4. X = pdist(X, 'seuclidean', V=None)
计算数组样本之间的标准化欧式距离 ,v是方差向量,表示 v[i]表示第i个分量的方差,如果缺失。默认自动计算。
5. X = pdist(X, 'sqeuclidean')
计算数组样本之间欧式距离的平方
6.