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 相关文章推荐
flask + pymysql操作Mysql数据库的实例
Nov 13 Python
Python2.7.10以上pip更新及其他包的安装教程
Jun 12 Python
python实现播放音频和录音功能示例代码
Dec 30 Python
详解python中init方法和随机数方法
Mar 13 Python
python实现猜数字游戏
Mar 25 Python
python3 实现口罩抽签的功能
Mar 11 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
Apr 16 Python
20行Python代码实现一款永久免费PDF编辑工具的实现
Aug 27 Python
如何使用Pytorch搭建模型
Oct 26 Python
python实现xml转json文件的示例代码
Dec 30 Python
Python 全局空间和局部空间
Apr 06 Python
详解OpenCV获取高动态范围(HDR)成像
Apr 29 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
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
JS实现php的伪分页
2008/05/25 PHP
php中substr()函数参数说明及用法实例
2014/11/15 PHP
php-redis中的sort排序函数总结
2015/07/08 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
2016/01/05 PHP
phpcms中的评论样式修改方法
2016/10/21 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
2019/06/03 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
laravel与thinkphp之间的区别与优缺点
2021/03/02 PHP
一个小型js框架myJSFrame附API使用帮助
2008/06/28 Javascript
5款Javascript颜色选择器
2009/10/25 Javascript
Javascript Ajax异步读取RSS文档具体实现
2013/12/12 Javascript
javascript 闭包详解
2015/07/02 Javascript
在JavaScript中访问字符串的子串
2015/07/07 Javascript
JSON字符串转JSON对象
2015/07/31 Javascript
跟我学习javascript的var预解析与函数声明提升
2015/11/16 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
angularjs 的数据绑定实现原理
2018/07/02 Javascript
webpack4简单入门实例
2018/09/06 Javascript
angular 服务随记小结
2019/05/06 Javascript
javascript关于“时间”的一次探索
2019/07/24 Javascript
详解Vue3 Teleport 的实践及原理
2020/12/02 Vue.js
python发送邮件示例(支持中文邮件标题)
2014/02/16 Python
跟老齐学Python之从格式化表达式到方法
2014/09/28 Python
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
Python利用Beautiful Soup模块搜索内容详解
2017/03/29 Python
Python编程之序列操作实例详解
2017/07/22 Python
Python数据类型之Number数字操作实例详解
2019/05/08 Python
应聘编辑职位自荐信范文
2014/01/05 职场文书
党性心得体会
2014/09/03 职场文书
公司转让协议书
2016/03/19 职场文书
诚信高考倡议书
2019/06/24 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书
导游词之崇武古城
2019/10/07 职场文书
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python
天谕手游15杯全调酒配方和调酒券的获得方式
2022/04/06 其他游戏