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实现的抓取腾讯视频所有电影的爬虫
Apr 22 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
python中 logging的使用详解
Oct 25 Python
关于pytorch多GPU训练实例与性能对比分析
Aug 19 Python
Python实现图像的垂直投影示例
Jan 17 Python
Python虚拟环境venv用法详解
May 25 Python
python在一个范围内取随机数的简单实例
Aug 16 Python
Django静态文件加载失败解决方案
Aug 26 Python
Python中X[:,0]和X[:,1]的用法
May 10 Python
Pandas自定义选项option设置
Jul 25 Python
Python中异常处理用法
Nov 27 Python
Python字符串常规操作小结
Apr 03 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实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
PHP日期函数date格式化UNIX时间的方法
2015/03/19 PHP
最准确的php截取字符串长度函数
2015/10/29 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
javascript SpiderMonkey中的函数序列化如何进行
2012/12/05 Javascript
使用js获取地址栏中传递的值
2013/07/02 Javascript
js 验证身份证信息有效性
2014/03/28 Javascript
js实现禁止中文输入的方法
2015/01/14 Javascript
jQuery+jRange实现滑动选取数值范围特效
2015/03/14 Javascript
JavaScript 模块化编程(笔记)
2015/04/08 Javascript
javascript实现延时显示提示框特效代码
2016/04/27 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
AngularJS入门教程之REST和定制服务详解
2016/08/19 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
理解Angular的providers给Http添加默认headers
2017/07/04 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
matplotlib绘图实例演示标记路径
2018/01/23 Python
Python符号计算之实现函数极限的方法
2019/07/15 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
python字符串判断密码强弱
2020/03/18 Python
python爬虫基础知识点整理
2020/06/02 Python
Python基于wordcloud及jieba实现中国地图词云图
2020/06/09 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
JACK & JONES荷兰官网:男士服装和鞋子
2021/03/07 全球购物
介绍一下Python下range()函数的用法
2013/11/07 面试题
离婚协议书怎么写2014
2014/09/30 职场文书
思想作风整顿个人剖析材料
2014/10/06 职场文书
2015年餐厅服务员工作总结
2015/04/23 职场文书
暑期辅导班宣传单
2015/07/14 职场文书
2015年度对口支援工作总结
2015/07/22 职场文书
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
2021/06/09 Python
一篇文章弄懂Python关键字、标识符和变量
2021/07/15 Python
win10电脑关机快捷键是哪个 win10快速关机的几种方法
2022/08/14 数码科技