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小技巧之批量抓取美女图片
Jun 06 Python
Python调用C语言开发的共享库方法实例
Mar 18 Python
Python 遍历子文件和所有子文件夹的代码实例
Dec 21 Python
Django中login_required装饰器的深入介绍
Nov 24 Python
详解如何利用Cython为Python代码加速
Jan 27 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
Mar 13 Python
PyQt4实时显示文本内容GUI的示例
Jun 14 Python
Python中url标签使用知识点总结
Jan 16 Python
Python Sphinx使用实例及问题解决
Jan 17 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
Feb 28 Python
Python 实现自动登录+点击+滑动验证功能
Jun 10 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
Aug 05 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
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
ecshop后台编辑器替换成ueditor编辑器
2015/03/03 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
windows环境下使用Composer安装ThinkPHP5
2018/05/18 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
有关于eclipse配置spket需要注意的一些地方
2013/04/07 Javascript
jquery 新建的元素事件绑定问题解决方案
2014/06/12 Javascript
jQuery淡入淡出元素让其效果更为生动
2014/09/01 Javascript
JQuery限制复选框checkbox可选中个数的方法
2015/04/20 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
2016/11/11 Javascript
js输入框使用正则表达式校验输入内容的实例
2017/02/12 Javascript
微信小程序之获取当前位置经纬度以及地图显示详解
2017/05/09 Javascript
[02:49]DOTA2完美大师赛首日观众采访
2017/11/23 DOTA
Python的函数嵌套的使用方法
2014/01/24 Python
Python help()函数用法详解
2014/03/11 Python
Python随手笔记第一篇(2)之初识列表和元组
2016/01/23 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
2018/07/27 Python
kafka-python批量发送数据的实例
2018/12/27 Python
Python3.5模块的定义、导入、优化操作图文详解
2019/04/27 Python
Python内置方法实现字符串的秘钥加解密(推荐)
2019/12/09 Python
python 插入日期数据到Oracle实例
2020/03/02 Python
Python 解决相对路径问题:"No such file or directory"
2020/06/05 Python
大都会艺术博物馆商店:The Met Store
2018/06/22 全球购物
幼儿园长自我鉴定
2013/10/17 职场文书
汽车驾驶求职信
2013/10/25 职场文书
《童年》教学反思
2014/02/18 职场文书
经销商订货会主持词
2014/03/27 职场文书
公司户外活动总结
2014/07/04 职场文书
2014第二批党的群众路线教育实践活动对照检查材料思想汇报
2014/09/18 职场文书
北京离婚协议书范文2014
2014/09/29 职场文书
岳麓书院导游词
2015/02/03 职场文书
承兑汇票延期证明
2015/06/23 职场文书
2015年国庆节标语大全
2015/07/30 职场文书
给领导敬酒词
2015/08/12 职场文书
MySQL学习总结-基础架构概述
2021/04/05 MySQL