时间序列的Heaviside阶跃函数?

时间:2018-11-30 16:25:44

标签: python

我有一个时间序列,显示NDVI随时间变化。有人告诉我我需要在我的系列中应用重阶梯函数。我将如何应用重阶梯函数?以下是我的数据集。我对步进功能不是很熟悉,但是我知道数据更改的日期是2017年9月10日。

date       NDVI
24-Jan-16   0.786
25-Feb-16   0.781
29-Apr-16   0.786
15-May-16   0.761
16-Jun-16   0.762
04-Sep-16   0.783
22-Oct-16   0.797
23-Nov-16   0.792
09-Dec-16   0.783
25-Dec-16   0.788
26-Jan-17   0.776
11-Feb-17   0.789
15-Mar-17   0.781
05-Jul-17   0.785
07-Sep-17   0.796
09-Oct-17   0.304
10-Nov-17   0.316
26-Nov-17   0.636

1 个答案:

答案 0 :(得分:1)

对于负参数,Heaviside函数为零,对于正参数,Heaviside函数为1。听起来好像是要生成另一个表,直到9月17日该表为零,然后再生成一个。如果您的数据按元组列表进行排列,并且已经按日期排序,则可以执行以下操作:

original = [("24-Jan-16", 0.786), ("25-Feb-16", 0.781)] # and so on
transformed = list()
value = 0
for stamp, ndvi in original:
    transformed.append((stamp, value))
    if stamp.endswith("Sep-17"):
        day = int(stamp[:2])
        if day >= 10:
            value = 1