擅长:python、mysql、java
<p>现在这对于1D数据数组来说有点过头了,但是您可以简化它并提取出所需的内容。因为熊猫可以依赖numpy,所以您可能需要检查一下它们的滚动/跨步功能是否实现。
20个序列号的结果。一个7天的窗口,大步/滑动2</p>
<pre><code> z = np.arange(20)
z #array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
s = stride(z, (7,), (2,))
np.mean(s, axis=1) # array([ 3., 5., 7., 9., 11., 13., 15.])
</code></pre>
<p>下面是我在没有文档主要部分的情况下使用的代码。它源于许多在numpy中实现的跨接函数,可以在这个站点上找到。有变体和化身,这只是另一个。在</p>
^{pr2}$
<p>我没有指出,您可以创建一个可以作为列附加到pandas中的输出。回到上面使用的原始定义</p>
<pre><code>nans = np.full_like(z, np.nan, dtype='float') # z is the 20 number sequence
means = np.mean(s, axis=1) # results from the strided mean
# assign the means to the output array skipping the first and last 3 and striding by 2
nans[3:-3:2] = means
nans # array([nan, nan, nan, 3., nan, 5., nan, 7., nan, 9., nan, 11., nan, 13., nan, 15., nan, nan, nan, nan])
</code></pre>