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函数帮助查询小工具
Mar 13 Python
Python的randrange()方法使用教程
May 15 Python
基于python实现在excel中读取与生成随机数写入excel中
Jan 04 Python
PyQt5 QSerialPort子线程操作的实现
Apr 21 Python
基于python神经卷积网络的人脸识别
May 24 Python
python向字符串中添加元素的实例方法
Jun 28 Python
如何用Python来搭建一个简单的推荐系统
Aug 07 Python
关于阿里云oss获取sts凭证 app直传 python的实例
Aug 20 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
Oct 24 Python
pandas读取csv文件提示不存在的解决方法及原因分析
Apr 21 Python
python编写softmax函数、交叉熵函数实例
Jun 11 Python
利用python爬取有道词典的方法
Dec 08 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
网站加速 PHP 缓冲的免费实现方法
2006/10/09 PHP
php字符串截取中文截取2,单字节截取模式
2007/12/10 PHP
php文件服务实现虚拟挂载其他目录示例
2014/04/17 PHP
ThinkPHP模板判断输出Defined标签用法详解
2014/06/30 PHP
PHP应用跨时区功能的实现方法
2019/03/21 PHP
Highslide.js是一款基于js实现的网页中图片展示插件
2020/03/30 Javascript
jquery绑定原理 简单解析与实现代码分享
2011/09/06 Javascript
JavaScript与DOM组合动态创建表格实例
2012/12/23 Javascript
jquery做的一个简单的屏幕锁定提示框
2014/03/26 Javascript
jQuery中prevAll()方法用法实例
2015/01/08 Javascript
jQuery中的ajax async同步和异步详解
2015/09/29 Javascript
jquery单击事件和双击事件冲突解决方案
2016/03/02 Javascript
JS获取屏幕高度的简单实现代码
2016/05/24 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
基于JavaScript实现瀑布流效果
2017/03/29 Javascript
javascript异步处理与Jquery deferred对象用法总结
2019/06/04 jQuery
layui-table表复选框勾选的所有行数据获取的例子
2019/09/13 Javascript
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
Python中序列的修改、散列与切片详解
2017/08/27 Python
python通过elixir包操作mysql数据库实例代码
2018/01/31 Python
Anaconda入门使用总结
2018/04/05 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
对python while循环和双重循环的实例详解
2019/08/23 Python
video结合canvas实现视频在线截图功能
2018/06/25 HTML / CSS
Html5 滚动穿透的方法
2019/05/13 HTML / CSS
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
工商企业管理实习自我鉴定
2013/12/04 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
小学教师师德师风自我剖析材料
2014/09/29 职场文书
工作失职检讨书(精华篇)
2014/10/15 职场文书
现实表现材料范文
2014/12/23 职场文书
小学新教师个人总结
2015/02/05 职场文书
八年级物理教学反思
2016/02/19 职场文书
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js
css样式important规则的正确使用方式
2022/06/10 HTML / CSS