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

如何计算每帧总距离的绝对变化?非列表整体欧氏距离

逐帧空间距离绝对变化的计算方案

你要的是相邻帧之间的空间位置欧氏距离(每帧相对于前一帧的位移绝对值),完全不需要嵌套循环,用numpy的向量化运算就能高效搞定,比for循环快得多,尤其是长列表场景。

实现代码

基于你已有的numpy数组,直接添加以下代码即可:

# 计算相邻帧的坐标差值(后一帧减前一帧)
dx = X_cords1[1:] - X_cords1[:-1]
dy = Y_cords1[1:] - Y_cords1[:-1]
dz = Z_cords1[1:] - Z_cords1[:-1]

# 计算每帧的绝对距离变化(三维欧氏距离)
frame_dist_changes = np.sqrt(dx**2 + dy**2 + dz**2)

# 可选:补全第一帧的NaN值,让结果长度与原数据一致
frame_dist_changes_full = np.insert(frame_dist_changes, 0, np.nan)
data['dist_change'] = frame_dist_changes_full

关键说明

  • 数组切片[1:]和[:-1]可以一次性生成所有相邻元素的差值,避免手动写循环。
  • 用勾股定理直接计算三维空间的欧氏距离,得到的就是每帧相对于前一帧的位移大小(即你要的“总距离绝对变化”)。
  • 补全NaN是因为第一帧没有前一帧,没有变化值,这样结果可以直接和原DataFrame的每一行对应。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 07:45:34