【问题标题】:Scipy.detrend: Function changes range of valuesScipy.detrend:函数更改值的范围
【发布时间】:2020-04-20 02:57:05
【问题描述】:

我正在尝试消除这个一维数组的趋势:

array([13.64352283, 13.48914862, 13.00767009, 13.35416524, 13.60143818,
       13.40895156, 13.48349417, 13.65703125, 13.4959721 , 13.28891263,
       12.97999066, 13.01112397, 12.79519705, 13.32030445, 13.19949068,
       12.88691975, 13.32079707])

函数运行没有错误,但将值的范围从 ~[12,14] 更改为 ~[-0.4,0.4]。 我相信这是由于发生这种情况的值的小标准差。 有什么想法可以解决这个问题,所以我可以将带有趋势的数组和去趋势的数组绘制成一个图? 规范化不是一种选择。

请帮忙。

【问题讨论】:

    标签: python-3.x machine-learning scipy


    【解决方案1】:

    嗯,这正是detrend 所做的:它减去输入的最小二乘线性近似值。

    这里有一个图来说明发生了什么:

    from scipy import signal
    import numpy as np
    import matplotlib.pyplot as plt
    
    y = np.array([13.64352283, 13.48914862, 13.00767009, 13.35416524, 13.60143818,
                  13.40895156, 13.48349417, 13.65703125, 13.4959721, 13.28891263,
                  12.97999066, 13.01112397, 12.79519705, 13.32030445, 13.19949068,
                  12.88691975, 13.32079707])
    plt.plot(y, color='dodgerblue')
    plt.plot(signal.detrend(y), color='limegreen')
    plt.plot(y - signal.detrend(y), color='crimson')
    plt.show()
    

    图中的红线是从原始数据中减去得到detrend(y)的线性近似值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-13
      • 1970-01-01
      相关资源
      最近更新 更多