我有一个时间序列,显示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
答案 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