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创建文件和追加文件内容实例
Oct 21 Python
Python使用wxPython实现计算器
Jan 30 Python
Python 中Pickle库的使用详解
Feb 24 Python
python 筛选数据集中列中value长度大于20的数据集方法
Jun 14 Python
Python图像处理之gif动态图的解析与合成操作详解
Dec 30 Python
python绘制无向图度分布曲线示例
Nov 22 Python
python 非线性规划方式(scipy.optimize.minimize)
Feb 11 Python
python之生成多层json结构的实现
Feb 27 Python
Python3爬虫关于代理池的维护详解
Jul 30 Python
10行Python代码实现Web自动化管控的示例代码
Aug 14 Python
python打包多类型文件的操作方法
Sep 21 Python
DRF使用simple JWT身份验证的实现
Jan 14 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中imagick函数的中文解释
2015/01/21 PHP
php读取本地json文件的实例
2018/03/07 PHP
PHP实现的大文件切割与合并功能示例
2018/04/10 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
基于jquery实现一张图片点击鼠标放大再点缩小
2013/09/29 Javascript
js中判断用户输入的值是否为空的简单实例
2013/12/23 Javascript
jquery分页对象使用示例
2014/04/01 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
2016/12/08 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
element ui table 增加筛选的方法示例
2018/11/02 Javascript
微信小程序后端无法保持session的原因及解决办法问题
2020/03/20 Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
2020/07/24 Javascript
vue 判断元素内容是否超过宽度的方式
2020/07/29 Javascript
Python random模块常用方法
2014/11/03 Python
python实现在windows下操作word的方法
2015/04/28 Python
Python基于回溯法子集树模板解决数字组合问题实例
2017/09/02 Python
PyCharm设置护眼背景色的方法
2018/10/29 Python
解决Python print输出不换行没空格的问题
2018/11/14 Python
Python模拟登录之滑块验证码的破解(实例代码)
2019/11/18 Python
Python内置数据类型list各方法的性能测试过程解析
2020/01/07 Python
波比布朗英国官网:Bobbi Brown英国
2017/11/13 全球购物
在线购买澳大利亚设计师手拿包和奢华晚装手袋:Olga Berg
2019/03/20 全球购物
《走一步再走一步》教学反思
2014/02/15 职场文书
计算机专业应届生求职信
2014/04/06 职场文书
房地产广告策划方案
2014/05/15 职场文书
企业口号大全
2014/06/12 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
初级党校心得体会
2014/09/11 职场文书
群众路线教育实践活动自我剖析思想汇报
2014/10/04 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
卖房协议书样本
2014/10/30 职场文书
海底两万里读书笔记
2015/06/26 职场文书
医德医风学习心得体会
2016/01/25 职场文书
留学文书中的个人陈述,应该注意哪些问题?
2019/08/23 职场文书
关于Python中进度条的六个实用技巧分享
2022/04/05 Python