我在 python 3.5 上有一个滑动窗口,它用于长时间序列数据,到目前为止我有很好的结果,但我只需要确定我的滑动窗口是否正常工作。所以我决定尽可能测试一个简单的数据在这里看到。

import  numpy as np
import itertools as it
x=[1,2,3,4,5,6,7,8,9]
def moving_window(x, length, step=1):
    streams = it.tee(x, length)
    return zip(*[it.islice(stream, i, None, step) for stream, i in zip(streams, it.count(step=step))])
x_=list(moving_window(x, 3))
x_=np.asarray(x_)
print(x_)

我的打印结果是



我希望我的输出看起来像



所以我尝试将步骤设置为 3,但我得到了



看起来步骤也出现在幻灯片内容中,而不仅仅是在幻灯片之间,我怎样才能得到我想要的结果?

最佳答案

import  numpy as np
import itertools as it
x=[1,2,3,4,5,6,7,8,9]
def moving_window(x, length, step=1):
    streams = it.tee(x, length)
    return zip(*[it.islice(stream, i, None, step*length) for stream, i in zip(streams, it.count(step=step))])
x_=list(moving_window(x, 3))
x_=np.asarray(x_)
print(x_)

你需要有 it.islice(stream, i, None, step*length) 你想要的输出

关于python - 时间序列数据上的滑动窗口,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44790072/

10-14 18:10