python计算波峰波谷值的方法(极值点)


Posted in Python onFebruary 18, 2020

python求极值点主要用到scipy库。

1. 首先可先选择一个函数或者拟合一个函数,这里选择拟合数据:np.polyfit

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from scipy import signal #滤波等

xxx = np.arange(0, 1000)
yyy = np.sin(xxx*np.pi/180)

z1 = np.polyfit(xxx, yyy, 7) # 用7次多项式拟合
p1 = np.poly1d(z1) #多项式系数
print(p1) # 在屏幕上打印拟合多项式
yvals=p1(xxx) 

plt.plot(xxx, yyy, '*',label='original values')
plt.plot(xxx, yvals, 'r',label='polyfit values')
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.legend(loc=4)
plt.title('polyfitting')
plt.show()

得到的图形是:

python计算波峰波谷值的方法(极值点)

2. 求波峰值,也就是极大值,得到:signal.find_peaks

# 极值
num_peak_3 = signal.find_peaks(yvals, distance=10) #distance表极大值点的距离至少大于等于10个水平单位
print(num_peak_3[0])
print('the number of peaks is ' + str(len(num_peak_3[0])))
plt.plot(xxx, yyy, '*',label='original values')
plt.plot(xxx, yvals, 'r',label='polyfit values')
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.legend(loc=4)
plt.title('polyfitting')
for ii in range(len(num_peak_3[0])):
 plt.plot(num_peak_3[0][ii], yvals[num_peak_3[0][ii]],'*',markersize=10)
plt.show()

python计算波峰波谷值的方法(极值点)

3. 在可导的情形下,可以求导来求极值点,同时得到极大值和极小值点:np.polyder

yyyd = np.polyder(p1,1) # 1表示一阶导
print(yyyd)

此时:yyyd.r 即可就得导数为0的点,可以与上述的极大值点对应比较

python计算波峰波谷值的方法(极值点)

4. 直接函数分别求极大值和极小值:signal.argrelextrema 函数

print(yvals[signal.argrelextrema(yvals, np.greater)]) #极大值的y轴, yvals为要求极值的序列
print(signal.argrelextrema(yvals, np.greater)) #极大值的x轴
peak_ind = signal.argrelextrema(yvals,np.greater)[0] #极大值点,改为np.less即可得到极小值点
plt.plot(xxx, yyy, '*',label='original values')
plt.plot(xxx, yvals, 'r',label='polyfit values')
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.legend(loc=4)
plt.title('polyfitting')
plt.plot(signal.argrelextrema(yvals,np.greater)[0],yvals[signal.argrelextrema(yvals, np.greater)],'o', markersize=10) #极大值点
plt.plot(signal.argrelextrema(yvals,np.less)[0],yvals[signal.argrelextrema(yvals, np.less)],'+', markersize=10) #极小值点
plt.show()

python计算波峰波谷值的方法(极值点)

总结

以上所述是小编给大家介绍的python计算波峰波谷值的方法(极值点),希望对大家有所帮助,也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python抓取Discuz!用户名脚本代码
Dec 30 Python
python实现带验证码网站的自动登陆实现代码
Jan 12 Python
Python文件读取的3种方法及路径转义
Jun 21 Python
分析python切片原理和方法
Dec 19 Python
利用python将图片转换成excel文档格式
Dec 30 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
Feb 08 Python
django url到views参数传递的实例
Jul 19 Python
Tensorflow模型实现预测或识别单张图片
Jul 19 Python
python读取Excel表格文件的方法
Sep 02 Python
Django模板语言 Tags使用详解
Sep 09 Python
python破解同事的压缩包密码
Oct 14 Python
Python操作Excel的学习笔记
Feb 18 Python
Python表达式的优先级详解
Feb 18 #Python
使用Tkinter制作信息提示框
Feb 18 #Python
Python中import导入不同目录的模块方法详解
Feb 18 #Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
Feb 18 #Python
将pytorch转成longtensor的简单方法
Feb 18 #Python
python实现查找所有程序的安装信息
Feb 18 #Python
Python3中configparser模块读写ini文件并解析配置的用法详解
Feb 18 #Python
You might like
如何删除多级目录
2006/10/09 PHP
JSON在PHP中的应用介绍
2012/09/08 PHP
如何在php中正确的使用json
2013/08/06 PHP
如何让搜索引擎抓取AJAX内容解决方案
2014/08/25 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
HTML Dom与Css控制方法
2010/10/25 Javascript
Jquery知识点三 jquery表单对象操作
2011/01/17 Javascript
分享一个自己写的table表格排序js插件(高效简洁)
2011/10/29 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
js新闻滚动 js如何实现新闻滚动效果
2013/01/07 Javascript
jQuery性能优化技巧分析
2015/02/20 Javascript
Jquery效果大全之制作电脑健康体检得分特效附源码下载
2015/11/02 Javascript
使用jQuery在移动页面上添加按钮和给按钮添加图标
2015/12/04 Javascript
jQuery基于正则表达式的表单验证功能示例
2017/01/21 Javascript
vue-resource拦截器设置头信息的实例
2017/10/27 Javascript
Node.js使用cookie保持登录的方法
2018/05/11 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
javascript实现的字符串转换成数组操作示例
2019/06/13 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
用Python实现换行符转换的脚本的教程
2015/04/16 Python
python计算一个序列的平均值的方法
2015/07/11 Python
黑科技 Python脚本帮你找出微信上删除你好友的人
2016/01/07 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
python多线程共享变量的使用和效率方法
2019/07/16 Python
浅谈Python 命令行参数argparse写入图片路径操作
2020/07/12 Python
使用phonegap创建联系人的实现方法
2017/03/30 HTML / CSS
碧欧泉法国官网:Biotherm法国
2019/10/23 全球购物
知识竞赛活动方案
2014/02/18 职场文书
市场营销工作计划书
2014/05/06 职场文书
倡议书范文格式
2014/05/12 职场文书
会计岗位说明书
2014/07/29 职场文书
助学贷款贫困证明
2014/09/23 职场文书
出差报告怎么写
2014/11/06 职场文书
病危通知书样本
2015/04/17 职场文书
2016年感恩节活动总结大全
2016/04/01 职场文书
创业计划书之酒厂
2019/10/14 职场文书