python 寻找离散序列极值点的方法


Posted in Python onJuly 10, 2019

使用 scipy.signal 的 argrelextrema 函数(API),简单方便

import numpy as np 
import pylab as pl
import matplotlib.pyplot as plt
import scipy.signal as signal
x=np.array([
  0, 6, 25, 20, 15, 8, 15, 6, 0, 6, 0, -5, -15, -3, 4, 10, 8, 13, 8, 10, 3,
  1, 20, 7, 3, 0 ])
plt.figure(figsize=(16,4))
plt.plot(np.arange(len(x)),x)
print x[signal.argrelextrema(x, np.greater)]
print signal.argrelextrema(x, np.greater)

plt.plot(signal.argrelextrema(x,np.greater)[0],x[signal.argrelextrema(x, np.greater)],'o')
plt.plot(signal.argrelextrema(-x,np.greater)[0],x[signal.argrelextrema(-x, np.greater)],'+')
# plt.plot(peakutils.index(-x),x[peakutils.index(-x)],'*')
plt.show()
[25 15 6 10 13 10 20]
(array([ 2, 6, 9, 15, 17, 19, 22]),)

但是存在一个问题,在极值有左右相同点的时候无法识别,但是个人认为在实际的使用过程中极少会出现这种情况,所以可以忽略。

x=np.array([
  0, 15, 15, 15, 15, 8, 15, 6, 0, 6, 0, -5, -15, -3, 4, 10, 8, 13, 8, 10, 3,
  1, 20, 7, 3, 0 ])
plt.figure(figsize=(16,4))
plt.plot(np.arange(len(x)),x)
print x[signal.argrelextrema(x, np.greater)]
print signal.argrelextrema(x, np.greater)

plt.plot(signal.argrelextrema(x,np.greater)[0],x[signal.argrelextrema(x, np.greater)],'o')
plt.plot(signal.argrelextrema(x,np.less)[0],x[signal.argrelextrema(x, np.less)],'+')
plt.show()
[15 6 10 13 10 20]
(array([ 6, 9, 15, 17, 19, 22]),)

以上这篇python 寻找离散序列极值点的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python发送email的3种方法
Apr 28 Python
Python实现包含min函数的栈
Apr 29 Python
Python+Turtle动态绘制一棵树实例分享
Jan 16 Python
Python获取CPU、内存使用率以及网络使用状态代码
Feb 08 Python
Python3使用TCP编写一个简易的文件下载器功能
May 08 Python
django页面跳转问题及注意事项
Jul 18 Python
python实现局域网内实时通信代码
Dec 22 Python
Python warning警告出现的原因及忽略方法
Jan 31 Python
Python实现动态给类和对象添加属性和方法操作示例
Feb 29 Python
python2.7使用scapy发送syn实例
May 05 Python
Python基础之hashlib模块详解
May 06 Python
Python+腾讯云服务器实现每日自动健康打卡
Dec 06 Python
Python中面向对象你应该知道的一下知识
Jul 10 #Python
python实现函数极小值
Jul 10 #Python
通过PHP与Python代码对比的语法差异详解
Jul 10 #Python
python 梯度法求解函数极值的实例
Jul 10 #Python
对Python中小整数对象池和大整数对象池的使用详解
Jul 09 #Python
Python 旋转打印各种矩形的方法
Jul 09 #Python
python opencv对图像进行旋转且不裁剪图片的实现方法
Jul 09 #Python
You might like
PHP的伪随机数与真随机数详解
2015/05/27 PHP
CodeIgniter针对数据库的连接、配置及使用方法
2016/03/03 PHP
PHP实现单条sql执行多个数据的insert语句方法
2019/10/11 PHP
Javascript中Eval函数的使用说明
2008/10/11 Javascript
表单切换,用回车键替换Tab健(不支持IE)
2011/07/20 Javascript
js切换光标示例代码
2013/10/10 Javascript
javascript代码运行不出来执行错误的可能情况整理
2013/10/18 Javascript
Nodejs中自定义事件实例
2014/06/20 NodeJs
jquery实现表单验证简单实例演示
2015/11/23 Javascript
AngularJS过滤器filter用法实例分析
2016/11/04 Javascript
利用纯JS实现像素逐渐显示的方法示例
2017/08/14 Javascript
js定时器实现倒计时效果
2017/11/05 Javascript
Django与Vue语法的冲突问题完美解决方法
2017/12/14 Javascript
JQuery属性操作与循环用法示例
2019/05/15 jQuery
我要点爆”微信小程序云开发之项目建立与我的页面功能实现
2019/05/26 Javascript
vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信
2019/08/15 Javascript
layui动态加载多表头的实例
2019/09/05 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
vue 全局环境切换问题
2019/10/27 Javascript
vue中echarts图表大小适应窗口大小且不需要刷新案例
2020/07/19 Javascript
python测试驱动开发实例
2014/10/08 Python
python获得一个月有多少天的方法
2015/06/04 Python
Django查找网站项目根目录和对正则表达式的支持
2015/07/15 Python
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
python搜索包的路径的实现方法
2019/07/19 Python
python设计tcp数据包协议类的例子
2019/07/23 Python
python爬虫搭配起Bilibili唧唧的流程分析
2020/12/01 Python
Nike西班牙官方网站:Nike.com (ES)
2017/10/30 全球购物
老板电器官方购物商城:老板油烟机、燃气灶、消毒柜、电烤箱
2018/05/30 全球购物
台湾母婴用品购物网站:Infant婴之房
2018/06/15 全球购物
C语言开发工程师测试题
2016/12/20 面试题
2014年党员评议表自我评价
2014/09/27 职场文书
入党团支部推荐意见
2015/06/02 职场文书
《比的意义》教学反思
2016/02/18 职场文书
在Windows下安装配置CPU版的PyTorch的方法
2021/04/02 Python
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏