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

基于Numpy的双时间序列线性插值合并摇杆数据优化方案问询

简化摇杆双时间序列线性插值与合并的实现方法

你可以利用numpy.interp函数直接实现线性插值,这能大幅简化代码逻辑,避免手动维护索引和条件判断的繁琐操作。以下是优化后的实现:

import numpy as np
import matplotlib.pyplot as plt

# 示例数据
X = np.array([[0.98092103,   1013],
              [1.01400101,    375],
              [1.0561214,   -8484],
              [1.06982589, -17181],
              [1.09453125, -16965]])

Y = np.array([[0.98092103,    534],
             [1.00847602,   1690],
             [1.0392499,   -5327],
             [1.06982589, -27921],
             [1.10026598, -28915]])

# 提取时间戳和对应轴的数据
x_ts, x_vals = X[:, 0], X[:, 1]
y_ts, y_vals = Y[:, 0], Y[:, 1]

# 生成合并后的所有唯一时间戳并排序
merged_ts = np.sort(np.unique(np.concatenate([x_ts, y_ts])))

# 对X、Y轴分别进行线性插值
interp_x = np.interp(merged_ts, x_ts, x_vals)
interp_y = np.interp(merged_ts, y_ts, y_vals)

# 合并成最终数据
merged_data = np.column_stack([merged_ts, interp_x, interp_y])

# 绘制参数化2D图
plt.plot(interp_x, interp_y)
plt.xlabel('X轴运动')
plt.ylabel('Y轴运动')
plt.title('摇杆运动轨迹')
plt.show()

关键优化点说明

  • 利用numpy内置插值函数:np.interp默认就是线性插值,会自动处理目标时间戳在原始序列中的位置,无需手动判断时间戳是否存在、计算插值公式。
  • 简化时间戳合并:用np.unique+np.concatenate直接生成去重后的有序时间戳,替代手动遍历集合的操作。
  • 代码可读性提升:逻辑清晰拆分,每一步只做单一任务,避免嵌套循环和复杂的索引跟踪。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 08:20:28