微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Scipy的argelextrema如何计算相对的最小和最大点?

如何解决Scipy的argelextrema如何计算相对的最小和最大点?

我需要一种方法来“总结”一组非常简单的时间序列数据的趋势。我拥有的数据是数字的小型数组。因此,对于此任务,我认为查找数据的局部最小值和最大值是个好主意,为此,我使用了Scipy的argrelextrema

但是,我注意到最小值/最大值的数量发生了变化,即使我输入的数组大小相同,也只有值发生了变化。

这是我用来处理最小和最大点的代码

Min = argrelextrema(Data,np.less_equal,order=1)
Max = argrelextrema(Data,np.greater_equal,order=1)

Data一个numpy数组,此后,我将简单地合并这两个列表,以获得新的最小值和最大值点数组。

以下是一些示例:

Data = [0.01562082 0.01559678 0.01558285 0.01557904 0.01558535 0.01560178
        0.01564973 0.01570132 0.01574636 0.01577308 0.01578109 0.01577718
        0.01578482 0.01582784 0.01591733 0.01604655 0.01618308 0.01632583
        0.01645165 0.0165331  0.01656233 0.01657383 0.01659051 0.01663495
        0.01669707 0.01677208 0.01684644 0.01691019 0.01692698 0.01689828
        0.01683601 0.0167794  0.01675036 0.01673833 0.01672176 0.01670325
        0.01667906 0.01663228 0.0165824  0.01654845 0.0165189  0.01650002
        0.01650457 0.0165023  0.01647637 0.01644021 0.01641083 0.01639389
        0.01640292 0.01645308 0.01653916 0.01663476 0.01672894 0.0168041
        0.01685819 0.01688975 0.01689195 0.01686738 0.01681289 0.01674656
        0.01668275 0.01662218 0.01657003 0.01653403 0.01651127 0.01648644
        0.01646815 0.01647403 0.01650616 0.01654718 0.01660268 0.01667546
        0.01675055 0.01681478 0.01684934 0.01685311 0.01683879 0.01680271
        0.01675268 0.01670577 0.01669586 0.01673116 0.01678866 0.0168687
        0.01696406 0.01704584 0.01707744 0.01707247 0.01707501 0.01709555
        0.01714064 0.01720552 0.01729031 0.01739978 0.01750487 0.0175807
        0.0176142  0.01763469 0.01767566 0.01772319 0.01778411 0.01784948
        0.01791152 0.01794561 0.01793331 0.01788523 0.01779712 0.0176765
        0.01756823 0.017496   0.01748024 0.01752458 0.01760164 0.01769378
        0.01778257 0.01786717 0.01791865 0.01792737 0.01794314 0.01795934
        0.01801259 0.0181366  0.0182826  0.01844525 0.01860524 0.01871107
        0.01880035 0.01887308 0.01892926 0.0189689 ]

请给我以下长度为17的最小值和最大值的列表:

MinMax = [0.01562082353242461,0.015579037832236124,0.01578109371304461,0.015777184677035146,0.016926976224961164,0.016500019864325727,0.016504573743351694,0.016393892856635964,0.016891952660782285,0.016468150306266152,0.01685311141681872,0.016695859906600805,0.017077441484554673,0.01707247074227736,0.01794561357320149,0.01748024377591248,0.018968898758036815]

但是,以下数据将为我提供14个最小和最大点的列表:

Data = [0.00064984 0.00065114 0.00065204 0.00065254 0.00065266 0.00065237
 0.00065159 0.00065026 0.00064896 0.0006477  0.00064665 0.00064609
 0.00064647 0.00064749 0.00064878 0.00065004 0.00065087 0.00065168
 0.00065266 0.00065349 0.00065477 0.00065704 0.00066007 0.0006632
 0.00066555 0.00066693 0.00066696 0.00066599 0.00066417 0.00066208
 0.00066094 0.00066131 0.00066262 0.00066403 0.00066497 0.00066549
 0.00066538 0.00066449 0.00066272 0.00066061 0.00065843 0.0006563
 0.00065423 0.00065227 0.00065067 0.00064954 0.00064898 0.00064901
 0.00064957 0.00065054 0.00065157 0.00065272 0.0006536  0.00065394
 0.00065397 0.00065379 0.00065349 0.00065335 0.00065325 0.00065317
 0.00065289 0.00065251 0.00065165 0.00065056 0.00064978 0.00064935
 0.00064948 0.00065005 0.00065066 0.00065106 0.00065089 0.00065036
 0.00064965 0.00064905 0.00064859 0.00064812 0.00064768 0.00064699
 0.00064611 0.00064518 0.00064434 0.00064374 0.0006433  0.00064309
 0.00064284 0.00064229 0.00064121 0.00064007 0.00063909 0.00063794
 0.00063668 0.00063542 0.00063418 0.00063303 0.00063196 0.00063098
 0.00063008 0.00062953 0.0006289  0.00062836 0.00062837 0.00062893
 0.00063076 0.00063475 0.00064102 0.00064836 0.00065552 0.00066161
 0.00066631 0.00066966 0.00067176 0.00067227 0.00067201 0.00067174
 0.00067106 0.00066951 0.00066726 0.00066436 0.00066139 0.0006586
 0.00065682 0.00065608 0.00065639 0.00065754 0.00065896 0.00065938
 0.00065977 0.00066013 0.00066047 0.00066079]

输出

MinMax = [0.0006498411504998909,0.0006526565286276228,0.0006460858205177308,0.0006669555321107541,0.0006609390367534275,0.0006654930522849102,0.0006489758439007318,0.0006539745380065707,0.0006493490211631867,0.0006510601879485751,0.0006283588262705852,0.0006722702062996666,0.0006560753432617264,0.0006607864033713336]

在某些情况下,我会得到20分;在其他情况下,我将得到8。所以我的问题是:此函数如何计算那些最小和最大点?是否取决于数据变化多少?还是取决于数据的大小或其他?有没有办法获得相同数量的积分?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。