电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

python numpy實(shí)現(xiàn)rolling滾動案例

瀏覽:9日期:2022-07-22 10:57:16

相比較pandas,numpy并沒有很直接的rolling方法,但是numpy 有一個技巧可以讓NumPy在C代碼內(nèi)部執(zhí)行這種循環(huán)。

這是通過添加一個與窗口大小相同的額外尺寸和適當(dāng)?shù)牟椒鶃韺?shí)現(xiàn)的。

import numpy as npdata = 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.5np.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])

補(bǔ)充知識:pandas中的滾動窗口rolling函數(shù)和擴(kuò)展窗口expanding函數(shù)

在數(shù)據(jù)分析時,特別是在分析時間序列數(shù)據(jù)時,常會需要對一個序列進(jìn)行固定長度窗口的滾動計算和分析,比如計算移動均線。只要是需要根據(jù)一個時序得到一個新的時序,就往往需要進(jìn)行窗口滾動。在pandas中,DataFrame和Seies都有一個針對滾動窗口的函數(shù),叫做rolling()。其具體的參數(shù)為:DataFrame.rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None)

其中參數(shù)window可以為一個正整數(shù)或者一個offset(可以認(rèn)為是時間區(qū)間長度),通過這個參數(shù)設(shè)置窗口長度;min_periods表示窗口中需要的最小的觀測值,如果窗口中的成員個數(shù)少于這個設(shè)定的值,則這個窗口經(jīng)過計算后就會返回NaN,比如,如果min_periods設(shè)為3,但當(dāng)前的窗口中只有兩個成員,那么該窗口對應(yīng)的位置就會返回空值;center參數(shù)如果設(shè)為True,表示在取窗口覆蓋的區(qū)間時,以當(dāng)前l(fā)abel為中心,向兩邊取,若為False,則表示以當(dāng)前l(fā)abel為窗口的最右側(cè),向左側(cè)取,默認(rèn)為False,要注意的是,當(dāng)為True時,如果窗口長度為奇數(shù),則中心位置很好確定,就是最中間的位置,但是如果長度為偶數(shù),則默認(rèn)中心位置為中間偏右的那一個位置;win_type參數(shù)表示不同的窗口類型,可以通過這個參數(shù)給窗口成員賦予不同的權(quán)重,默認(rèn)為等權(quán)重;on參數(shù)表示指定對某一列進(jìn)行rolling,而不是默認(rèn)的對index進(jìn)行rolling,要注意的是,當(dāng)指定on參數(shù)時,指定的列必須是時間序列,不然rolling函數(shù)就會失效。

下面看一個簡單的例子。下面的例子中,當(dāng)窗口長度為3,設(shè)min_periods為2時,可知結(jié)果中第一個元素為NaN,因為第一個窗口只有一個值1,由于min_periods為2,所以至少需要包含兩個數(shù)才行,故第一個值為空值,從第二個元素開始才有非空值,這就是min_periods參數(shù)的含義。當(dāng)設(shè)置center為True時,如果窗口長度為偶數(shù)4,比如對于一個窗口[a,b,c,d],則中心值為中心偏右的那個位置,就是c,故此時第1個窗口覆蓋的元素為1和2,所以和為3,如下所示。

import pandas as pdimport numpy as npdf=pd.DataFrame([1,2,3,5],columns=[’a’])dfa01122335 df.rolling(3,min_periods=2).sum() a0NaN13.026.0310.0 df.rolling(4,min_periods=2,center=True).sum() a03.016.0211.0310.0

rolling函數(shù)返回的是window對象或rolling子類,可以通過調(diào)用該對象的mean(),sum(),std(),count()等函數(shù)計算返回窗口的值,還可以通過該對象的apply(func)函數(shù),通過自定義函數(shù)計算窗口的特定的值,具體可看文檔。

從以上可以看出,rolling的窗口可以向前取值,向兩邊取值,但是沒有向后取值,實(shí)際上只需要把原序列倒序排列后再向前取值就可以實(shí)現(xiàn)向后取值。下面我們再講一下expanding函數(shù),其為DataFrame.expanding(min_periods=1, center=False, axis=0),其中參數(shù)的意義和rolling一樣,只是其不是固定窗口長度,其長度是不斷的擴(kuò)大的。

以上這篇python numpy實(shí)現(xiàn)rolling滾動案例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 海尔生物医疗四川代理商,海尔低温冰箱四川销售-成都壹科医疗器械有限公司 | 污水处理设备维修_污水处理工程改造_机械格栅_过滤设备_气浮设备_刮吸泥机_污泥浓缩罐_污水处理设备_污水处理工程-北京龙泉新禹科技有限公司 | 中央空调维修、中央空调保养、螺杆压缩机维修-苏州东菱空调 | 一体化净水器_一体化净水设备_一体化水处理设备-江苏旭浩鑫环保科技有限公司 | 偏心半球阀-电动偏心半球阀-调流调压阀-旋球阀-上欧阀门有限公司 | 橡胶弹簧|复合弹簧|橡胶球|振动筛配件-新乡市永鑫橡胶厂 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | Copeland/谷轮压缩机,谷轮半封闭压缩机,谷轮涡旋压缩机,型号规格,技术参数,尺寸图片,价格经销商 CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 | 综合管廊模具_生态,阶梯护坡模具_检查井模具制造-致宏模具厂家 | 好物生环保网、环保论坛 - 环保人的学习交流平台 | 非标压力容器_碳钢储罐_不锈钢_搪玻璃反应釜厂家-山东首丰智能环保装备有限公司 | 上海防爆真空干燥箱-上海防爆冷库-上海防爆冷柜?-上海浦下防爆设备厂家? | 齿轮减速机_齿轮减速电机-VEMT蜗轮蜗杆减速机马达生产厂家瓦玛特传动瑞环机电 | 沈阳庭院景观设计_私家花园_别墅庭院设计_阳台楼顶花园设计施工公司-【沈阳现代时园艺景观工程有限公司】 | 活动策划,舞台搭建,活动策划公司-首选美湖上海活动策划公司 | 离子色谱自动进样器-青岛艾力析实验科技有限公司 | 政府回应:200块在义乌小巷能买到爱情吗?——揭秘打工族省钱约会的生存智慧 | 超声波乳化机-超声波分散机|仪-超声波萃取仪-超声波均质机-精浩机械|首页 | led冷热冲击试验箱_LED高低温冲击试验箱_老化试验箱-爱佩百科 | 点焊机-缝焊机-闪光对焊机-电阻焊设备生产厂家-上海骏腾发智能设备有限公司 | 垃圾清运公司_环卫保洁公司_市政道路保洁公司-华富环境 | 六自由度平台_六自由度运动平台_三自由度摇摆台—南京全控科技 | 电线电缆厂家|沈阳电缆厂|电线厂|沈阳英联塑力线缆有限公司 | 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 葡萄酒灌装机-食用油灌装机-液体肥灌装设备厂家_青州惠联灌装机械 | 东莞画册设计_logo/vi设计_品牌包装设计 - 华略品牌设计公司 | 齿轮减速马达一体式_蜗轮蜗杆减速机配电机-德国BOSERL齿轮减速电动机生产厂家 | 量子管通环-自清洗过滤器-全自动反冲洗过滤器-沼河浸过滤器 | 合肥网络推广_合肥SEO网站优化-安徽沃龙First | 电磁铁_小型推拉电磁铁_电磁阀厂家-深圳市宗泰电机有限公司 | elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | 玉米深加工设备-玉米深加工机械-新型玉米工机械生产厂家-河南粮院机械制造有限公司 | 中国产业发展研究网 - 提供行业研究报告 可行性研究报告 投资咨询 市场调研服务 | 卓能JOINTLEAN端子连接器厂家-专业提供PCB接线端子|轨道式端子|重载连接器|欧式连接器等电气连接产品和服务 | 打造全球沸石生态圈 - 国投盛世| 英国雷迪地下管线探测仪-雷迪RD8100管线仪-多功能数字听漏仪-北京迪瑞进创科技有限公司 | 多功能真空滤油机_润滑油全自动滤油机_高效真空滤油机价格-重庆润华通驰 | 杭州网络公司_百度SEO优化-外贸网络推广_抖音小程序开发-杭州乐软科技有限公司 | 中红外QCL激光器-其他连续-半导体连续激光器-筱晓光子 | 青岛代理记账_青岛李沧代理记账公司_青岛崂山代理记账一个月多少钱_青岛德辉财税事务所官网 | 炭黑吸油计_测试仪,单颗粒子硬度仪_ASTM标准炭黑自销-上海贺纳斯仪器仪表有限公司(HITEC中国办事处) |