You need to enable JavaScript to run this app. 如何提取数组中被0分隔的≥5或≤-5连续序列的极值列表
优惠活动
大模型
产品
解决方案
定价
更多

如何提取数组中被0分隔的≥5或≤-5连续序列的极值列表

解决方案

你已经生成的累加数组天然可以直接通过提取连续非0段的末尾值实现需求,因为每段连续非0序列的最后一个元素就是该段的总持续时长(正为高于阈值、负为低于阈值),使用numpy即可快速实现:

实现代码

import numpy as np

# 此处aok为你已经生成的累加数组
padded = np.concatenate([[0], aok, [0]])
# 定位所有连续非0段的末尾索引
seg_end_pos = np.where((padded[:-1] != 0) & (padded[1:] == 0))[0] - 1
# 筛选出持续时长≥5天或≤-5天的事件
result = aok[seg_end_pos][np.abs(aok[seg_end_pos]) >= 5].tolist()

结果验证

用你给出的样例数组运行上述代码,result的输出即为你需要的[-25, 6, 7]。
如果需要统计事件总数,直接取len(result)即可;区分正负事件的话可以进一步对结果做正负筛选统计。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 19:18:02