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

如何将scipy find_peaks结果转为列表并排序振幅值?

解决scipy find_peaks峰值高度排序问题

问题核心:你提取峰值高度时,list(p_val.values())返回的是包含单个numpy数组的列表,对这个列表排序只会对列表内的元素(仅一个数组)排序,不会改变数组内部元素的顺序。

修正步骤

  • 直接从p_val字典中取出height对应的numpy数组
  • 将数组转换为可直接索引的Python普通列表
  • 对列表执行降序排序

修正后的代码

from scipy.signal import find_peaks

p = find_peaks(data, height=60, distance=3)
p_ind, p_val = p
# 提取height数组并转为Python列表
a = list(p_val['height'])
# 降序排序
a.sort(reverse=True)

可选:用numpy直接排序(保留数组类型)

如果需要保留numpy数组类型,也可以用numpy的排序方法,再转成列表:

import numpy as np

a_sorted_array = np.sort(p_val['height'])[::-1]  # 降序排序数组
a = a_sorted_array.tolist()  # 转为Python列表

处理完成后,a就是一个可通过a[1]、a[2]直接访问元素的排序后列表。

内容的提问来源于stack exchange,提问作者Kishore Kumar S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 20:50:31