如何同步修剪scipy find_peaks返回的峰值索引与prominences数组?
同步过滤关联NumPy数组的解决方案
要同步移除prom中与p里超出范围元素对应的项,核心是复用同一个布尔过滤条件,确保两个数组的索引始终匹配,具体操作如下:
先创建统一的布尔掩码:
mask = (p >= 10) & (p <= 30)这个掩码是和数组长度一致的布尔数组,符合范围要求的位置标记为
True,不符合的为False。用该掩码同时过滤
p和prom:p = p[mask] prom = prom[mask]
用你给出的示例数据执行后:
p会变成array([10, 14, 16, 19])prom会同步变为array([100, 140, 50, 82])
如果需要保留原数组,也可以将结果赋值给新变量:
p_filtered = p[mask] prom_filtered = prom[mask]
这种方法能保证两个数组始终维持原有的索引对应关系,不会出现元素不同步的问题。
内容的提问来源于stack exchange,提问作者Radika Moonesinghe
相关产品推荐
相关产品推荐

