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抓取模板之家的CSS模板
Mar 16 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
Mar 11 Python
Python中int()函数的用法浅析
Oct 17 Python
centos 安装python3.6环境并配置虚拟环境的详细教程
Feb 22 Python
在NumPy中创建空数组/矩阵的方法
Jun 15 Python
使用Python开发SQLite代理服务器的方法
Dec 07 Python
浅谈Python编程中3个常用的数据结构和算法
Apr 30 Python
python3实现小球转动抽奖小游戏
Apr 15 Python
Puppeteer使用示例详解
Jun 20 Python
pandas 空数据处理方法详解
Nov 02 Python
pytorch中的inference使用实例
Feb 20 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
Oct 15 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 获取客户端的真实ip
2009/11/30 PHP
php学习之 数组声明
2011/06/09 PHP
php微信开发之上传临时素材
2016/06/24 PHP
input 高级限制级用法
2009/03/26 Javascript
理清apply(),call()的区别和关系
2011/08/14 Javascript
js控制table合并具体实现
2014/02/20 Javascript
php+js实现倒计时功能
2014/06/02 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
2015/06/19 Javascript
基于javascript制作经典传统的拼图游戏
2016/03/22 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
Angular 输入框实现自定义验证功能
2017/02/19 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
js解决软键盘遮挡输入框的问题分享
2017/12/19 Javascript
浅析node.js的模块加载机制
2018/05/25 Javascript
javascript中call()、apply()的区别
2019/03/21 Javascript
AntV F2和vue-cli构建移动端可视化视图过程详解
2019/10/08 Javascript
浅谈vue异步数据影响页面渲染
2019/10/29 Javascript
js通过循环多张图片实现动画效果
2019/12/19 Javascript
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
JS call()及apply()方法使用实例汇总
2020/07/11 Javascript
python标准算法实现数组全排列的方法
2015/03/17 Python
python3.6中@property装饰器的使用方法示例
2019/08/17 Python
Python中输入和输出(打印)数据实例方法
2019/10/13 Python
python函数声明和调用定义及原理详解
2019/12/02 Python
浅谈django channels 路由误导
2020/05/28 Python
基于Python实现体育彩票选号器功能代码实例
2020/09/16 Python
韩国CJ食品专卖网:CJonmart
2016/09/11 全球购物
高中生自我鉴定范文
2013/10/30 职场文书
上课睡觉检讨书
2014/01/28 职场文书
孝老爱亲模范事迹材料
2014/05/25 职场文书
篮球友谊赛通讯稿
2014/10/10 职场文书
2014年政教处工作总结
2014/12/20 职场文书
幼儿教师师德师风自我评价
2015/03/05 职场文书
血轮眼轮回眼特效 html+css
2021/03/31 HTML / CSS
Win11如何查看显卡型号 Win11查看显卡型号的方法
2022/08/14 数码科技