快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

python中numpy如何实现rolling滚动-创新互联

小编这次要给大家分享的是python中numpy如何实现rolling滚动,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。

创新互联建站是一家专业提供新沂企业网站建设,专注与成都网站设计、成都网站制作、HTML5、小程序制作等业务。10年已为新沂众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

相比较pandas,numpy并没有很直接的rolling方法,但是numpy 有一个技巧可以让NumPy在C代码内部执行这种循环。

这是通过添加一个与窗口大小相同的额外尺寸和适当的步幅来实现的。

import numpy as np
data = np.arange(20)
def rolling_window(a, window):
  shape = a.shape[:-1] + (a.shape[-1] - window + 1, window)
  strides = a.strides + (a.strides[-1],)
  return np.lib.stride_tricks.as_strided(a, shape=shape, strides=strides)

rolling_window(data,10)
Out[12]: 
array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
    [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
    [ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
    [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
    [ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
    [ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],
    [ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
    [ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
    [ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17],
    [ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],
    [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]])

np.mean(rolling_window(data,10))
Out[13]: 9.5

np.mean(rolling_window(data,10),-1)
Out[14]: array([ 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5])

本文标题:python中numpy如何实现rolling滚动-创新互联
文章转载:http://6mz.cn/article/ccgoes.html

其他资讯