Python Scipy&x27;计算相对最小值和最大值点?

Python Scipy&x27;计算相对最小值和最大值点?,python,python-3.x,scipy,Python,Python 3.x,Scipy,我需要一种方法来“总结”一组非常简单的时间序列数据的趋势。我拥有的数据是一个小规模的数字数组。因此,对于这项任务,我认为找到数据的局部极小值和极大值是一个好主意,为此,我使用了Scipy的argrelextrema 然而,我注意到最小值/最大值的数量发生了变化,即使我输入的数组的大小相同,但只有值发生了变化 下面是我用来处理极小值和极大值点的代码: Min = argrelextrema(Data, np.less_equal, order=1) Max = argrelextrema(Data

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

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

下面是我用来处理极小值和极大值点的代码:

Min = argrelextrema(Data, np.less_equal, order=1)
Max = argrelextrema(Data, np.greater_equal, order=1)
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]
其中,
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个最小值和最大值点的列表:

Min = argrelextrema(Data, np.less_equal, order=1)
Max = argrelextrema(Data, np.greater_equal, order=1)
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。所以我的问题是:这个函数如何计算这些极小值和极大值点?这是否取决于数据的变化程度?还是取决于数据的大小或其他因素?有没有办法得到同样的分数