Python scipy.spatial.distance.cdist 距离计算详解

江岸
江岸
发布时间:2026-10-15| 5人浏览过
原创

本文详细介绍Python中scipy.spatial.distance模块下的cdist函数,用于计算两个输入集合间的距离。重点解析metric参数支持的多种距离度量方式,如欧氏、曼哈顿、余弦等,并通过具体代码示例展示常用欧氏距离的计算过程与结果解析。

1 scipy.spatial

from scipy import spatial

在scipy.spatial模块中,distance子模块是最核心的部分之一,专门用于处理各种距离计算任务。

2 scipy.spatial.distance.cdist

2.1 语法

scipy.spatial.distance.cdist(XA, XB, metric='euclidean', 
                             p=None, V=None, VI=None, w=None)

该函数旨在计算两个输入集合之间的距离,通过指定metric参数来选择不同的距离度量方式,从而获得相应的距离值。

2.2 metric的取值

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

2.3 常用欧氏距离计算

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')
 
#=================结果=================
 
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)点的距离为例:

np.power((1-3)**2 +(3-7)**2,1/2)
 
#=================结果=================
 
4.4721359549995796

到此这篇关于python scipy.spatial.distance 距离计算函数 的文章就介绍到这了,更多相关python scipy.spatial.distance 内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。