You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅用numpy基于坐标ndarray生成成对距离矩阵

实现方法

你可以通过以下两种常用方案实现距离矩阵计算:

方案1:基于scipy的高效实现

scipy.spatial.distance.cdist是专门用于计算两组点两两距离的接口,性能优化较好,代码如下:

from scipy.spatial.distance import cdist
# 计算所有点两两之间的欧氏距离
dist_matrix = cdist(point_coords, point_coords, metric='euclidean')

最终得到的dist_matrix是形状为(40,40)的正方形矩阵,dist_matrix[i][j]对应第i个点和第j个点的欧氏距离,矩阵对角线值全为0,且整体为对称矩阵。

方案2:纯NumPy无额外依赖实现

如果不想引入scipy依赖,可直接用NumPy的广播机制手动计算:

# 利用广播计算所有点对在x、y维度的差值
coord_diff = point_coords[:, np.newaxis] - point_coords
# 差值平方求和后开根号得到欧氏距离
dist_matrix = np.sqrt(np.sum(coord_diff ** 2, axis=2))

计算结果和方案1完全一致。

内容的提问来源于stack exchange,提问作者wowonline

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 15:09:04