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

如何在Python中高效计算Numpy数组相邻元素间的距离?

高效计算Numpy数组相邻元素距离的方案

完全理解你的需求——要处理数千个元素的数组,还得重复执行,必须用Numpy原生的高效方法,避开scipy的依赖问题对吧?

这里有个纯Numpy的向量化实现,速度快到飞起,完全符合你的要求:

核心思路

利用Numpy的向量化操作(底层C实现,比Python循环快几个数量级),分三步完成:

  • 计算相邻元素的坐标差值
  • 对差值平方后求和(得到距离的平方)
  • 开根号得到实际距离,再补上第一个元素的0值

代码实现

import numpy as np

# 你的示例数组
arr = np.array([[1, 1, 0. ], [2 , 2, 0. ], [3 , 3, 1 ]])

# 计算相邻元素的差值平方和的平方根
distances = np.sqrt((np.diff(arr, axis=0)**2).sum(axis=1))
# 补上第一个元素的0值
result = np.concatenate([[0], distances])

print(result)
# 输出:[0.         1.41421356 1.73205081]

为什么高效?

  • np.diff(arr, axis=0):直接生成所有相邻元素的差值数组,完全向量化,没有循环
  • 平方、求和、开根号都是Numpy的内置函数,全部在底层优化过,处理数千甚至数万个元素毫无压力
  • 整个过程没有额外依赖,纯Numpy搞定,完美解决你之前的依赖问题

扩展说明

如果你的数组维度不同(比如每个元素是2维坐标),这段代码也能直接用——axis=1会自动对每个元素的所有维度求和,不需要修改任何参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:57:24