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

如何用Numpy向量化表达式计算坐标列表的距离矩阵

用Numpy向量化计算坐标列表的距离矩阵

首先把坐标列表转换成Numpy数组,这是向量化操作的基础:

import numpy as np

l_coords = [(1, 2), (1.1, 2.2), (1.05, 1.9)]
coords = np.array(l_coords)

方法一:基于广播手动计算欧氏距离

利用Numpy的广播机制,直接计算所有点对的欧氏距离:

# 扩展维度实现广播,得到每个点与所有点的坐标差
diff = coords[:, np.newaxis] - coords
# 计算差的平方和,再开根号得到距离矩阵
dist_matrix = np.sqrt(np.sum(diff ** 2, axis=-1))

方法二:用np.linalg.norm简化计算

Numpy的线性代数模块提供了范数计算函数,可以更简洁地实现:

dist_matrix = np.linalg.norm(coords[:, None] - coords, axis=-1)

两种方法得到的结果一致,输出的距离矩阵是对称矩阵,其中dist_matrix[i][j]表示第i个点到第j个点的欧氏距离。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 07:42:07