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

Python调用find_peaks查找峰值时如何获取数值而非索引

返回值规则

scipy.signal.find_peaks()返回值为二元元组:

  • 第一个元素:存储所有峰值对应位置索引的一维数组
  • 第二个元素:存储峰值高度、突出度、宽度等计算属性的字典
    未拆分返回值直接使用时,无法单独拿到索引做后续取值操作。
实现方法

方法1:配合numpy批量取值(适配scipy生态,写法最简洁)

scipy信号处理接口原生适配numpy数组,numpy数组支持直接传入索引序列批量取值,是官方文档示例的通用写法:

from scipy.signal import find_peaks
import numpy as np

a = [2, 3, 4, 1]
# 拆分返回值,不需要属性字典时可以用_占位
peaks_idx, _ = find_peaks(a)
# 转numpy数组后按索引批量取峰值
peak_values = np.array(a)[peaks_idx]

print(peaks_idx)    # 输出:[2]
print(peak_values)  # 输出:[4]

方法2:纯Python列表推导取值(无额外依赖)

如果不想引入numpy,可以遍历拆分出的索引,逐个从原列表取对应值:

from scipy.signal import find_peaks

a = [2, 3, 4, 1]
peaks_idx, _ = find_peaks(a)
peak_values = [a[idx] for idx in peaks_idx]

print(peaks_idx)    # 输出:[2]
print(peak_values)  # 输出:[4]
补充说明

如果需要获取峰值的相对高度、半高宽等衍生属性,不需要手动计算,直接读取返回的第二个属性字典内的对应字段即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 23:54:17