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

如何创建标记识别gazeAngleVelocity由正转零、零转正的fixation起止时刻?

如何标记凝视数据中Fixation的开始与结束?

在数据分析中需实现如下逻辑:当gazeAngleVelocity从大于0变为0时,为fixation的开始;当gazeAngleVelocity从0变为大于0时,为fixation的结束。需针对这两种情况创建标记,请问应使用什么命令实现?

Python Pandas 实现

核心思路是对比当前行与上一行的gazeAngleVelocity值,检测状态切换:

  1. 先生成上一行的速度列:
df['prev_gaze_vel'] = df['gazeAngleVelocity'].shift(1)
  1. 标记Fixation开始(从速度>0变为0):
df['fixation_start'] = (df['gazeAngleVelocity'] == 0) & (df['prev_gaze_vel'] > 0)
  1. 标记Fixation结束(从速度0变为>0):
df['fixation_end'] = (df['gazeAngleVelocity'] > 0) & (df['prev_gaze_vel'] == 0)

如果要处理第一行的空值(prev_gaze_vel初始为NaN),可以用fillna()设定初始状态,比如假设初始速度为0:

df['prev_gaze_vel'] = df['gazeAngleVelocity'].shift(1).fillna(0)

R 语言实现

用dplyr的lag()函数获取上一行数据,逻辑和Pandas一致:

library(dplyr)

df <- df %>%
  mutate(prev_gaze_vel = lag(gazeAngleVelocity, default = 0),
         fixation_start = (gazeAngleVelocity == 0) & (prev_gaze_vel > 0),
         fixation_end = (gazeAngleVelocity > 0) & (prev_gaze_vel == 0))

通用逻辑说明

不管用什么数据分析工具,核心都是检测时序数据的状态切换:通过当前观测值与前一观测值的对比,判断是否触发了“从运动到静止”或“从静止到运动”的条件,进而生成对应的标记列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 06:45:32