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安装以及IDE的配置教程
Apr 29 Python
简单上手Python中装饰器的使用
Jul 12 Python
批处理与python代码混合编程的方法
May 19 Python
Python3自动签到 定时任务 判断节假日的实例
Nov 13 Python
python进行TCP端口扫描的实现
Dec 21 Python
Python求两点之间的直线距离(2种实现方法)
Jul 07 Python
python利用dlib获取人脸的68个landmark
Nov 27 Python
Python pandas如何向excel添加数据
May 22 Python
Python flask框架如何显示图像到web页面
Jun 03 Python
序列化Python对象的方法
Aug 01 Python
基于logstash实现日志文件同步elasticsearch
Aug 06 Python
Django中使用Celery的方法步骤
Dec 07 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
用函数读出数据表内容放入二维数组
2006/10/09 PHP
PHP连接局域网MYSQL数据库的简单实例
2013/08/26 PHP
回帖脱衣服的图片实现代码
2014/02/15 PHP
JS backgroundImage控制
2009/05/19 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
2012/03/01 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
2013/07/01 Javascript
jQuery焦点图切换特效代码分享
2015/09/15 Javascript
clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
2015/10/10 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
DWR中各种java方法的调用
2016/05/04 Javascript
self.attachevent is not a function的解决方法
2017/04/04 Javascript
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
Angular项目中$scope.$apply()方法的使用详解
2017/07/26 Javascript
解析vue中的$mount
2017/12/21 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
2018/06/19 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
2018/07/23 jQuery
JS中appendChild追加子节点无效的解决方法
2018/10/14 Javascript
基于jQuery实现可编辑的表格
2019/12/11 jQuery
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
Python警察与小偷的实现之一客户端与服务端通信实例
2014/10/09 Python
在pandas中一次性删除dataframe的多个列方法
2018/04/10 Python
Flask web开发处理POST请求实现(登录案例)
2018/07/26 Python
Django中的forms组件实例详解
2018/11/08 Python
python重试装饰器的简单实现方法
2019/01/31 Python
Python提取特定时间段内数据的方法实例
2019/04/01 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
使用python编写一个语音朗读闹钟功能的示例代码
2020/07/14 Python
Carter’s OshKosh加拿大:购买婴幼儿服装和童装
2018/11/27 全球购物
小学班主任评语大全
2014/04/23 职场文书
2014年小学德育工作总结
2014/12/05 职场文书
廉洁自律准则学习心得体会
2016/01/13 职场文书
python中如何对多变量连续赋值
2021/06/03 Python
centos7安装mysql5.7经验记录
2022/05/02 Servers
浅谈为什么我的 z-index 又不生效了
2022/07/15 HTML / CSS