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

如何高效从大型有序递增时间数组中提取相邻差值大于30的元素对

高效实现方案

直接使用NumPy自带的向量化差分运算即可实现需求,全程不需要手动遍历数组,执行效率远高于纯Python循环,完全适配数千甚至数十万量级的数组场景。

实现步骤

  • 第一步:用np.diff()计算数组相邻元素的差值
  • 第二步:筛选出差值大于30的索引位置
  • 第三步:按照索引取出对应的相邻元素对

示例代码

import numpy as np

hugeArr = np.array([0, 2.072, 50.0, 90.0, 91.1])
# 计算相邻元素差值
diff_arr = np.diff(hugeArr)
# 生成差值大于30的掩码
mask = diff_arr > 30
# 取出符合要求的相邻元素对
result = np.column_stack((hugeArr[:-1][mask], hugeArr[1:][mask]))
# 转为元组格式(按需选择)
tuple_result = [tuple(pair) for pair in result]

print(tuple_result)

输出结果

[(2.072, 50.0), (50.0, 90.0)]

效率说明

np.diff是NumPy底层C实现的向量化操作,时间复杂度为O(n)但常数项极低,长度为1万的数组运算耗时仅在微秒级,完全满足性能要求。

内容的提问来源于stack exchange,提问作者Flynn O'Connell

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:27:04