python 求各种距离公式(numpy矩阵)
2022/1/8 1:03:34
本文主要是介绍python 求各种距离公式(numpy矩阵),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
导入必要库 :
from scipy.spatial.distance import pdist, squareform
一、距离计算(压缩成一维的)
1、欧式距离
计算数组矩阵 X 样本之间的欧式距离,返回值为 Y 为压缩距离元组或矩阵(以下等同)
X = pdist(X, 'euclidean')
2、明氏距离
X = pdist(X, 'minkowski', p)
3、曼哈顿距离
Y = pdist(X, 'cityblock')
4、标准化欧式距离
计算数组样本之间的标准化欧式距离 ,v是方差向量,表示 v[i]表示第i个分量的方差,如果缺失。默认自动计算。
X = pdist(X, 'seuclidean', V=None)
5、欧式距离的平方
X = pdist(X, 'sqeuclidean')
6、余弦距离
X = pdist(X, 'cosine')
7、相关距离
X = pdist(X, 'hamming')
注意:相关距离 + 相关系数 = 1。所以,相关系数为:
X = 1 - pdist(X, 'correlation') # 或采用 numpy 的相关系数函数 X = np.corrcoef(X)
8、汉明距离
X = pdist(X, 'hamming')
9、杰卡德距离
X = pdist(X, 'jaccard')
10、切比雪夫距离
X = pdist(X, 'chebyshev')
11、堪培拉距离
X = pdist(X, 'canberra')
12、马氏距离
X = pdist(X, 'mahalanobis', VI=None)
还有很多,具体参考官方文件。
二、解压(即解压成 N * N 矩阵)
Y = squareform(X, force='no', checks=True)
其中,X 就是上文提到的压缩矩阵 Y,force 如同 MATLAB 一样,如果 force 等于 ‘tovector’ or ‘tomatrix’, 输入就会被当做距离矩阵或距离向量。
cheak 当 X-X.T 比较小或 diag(X) 接近于零,是有必要设成 True 的,返回值 Y 为一个距离矩阵Y[i,j] 表示样本 i 与样本 j 的距离。
这篇关于python 求各种距离公式(numpy矩阵)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门