最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2020年06月08日 10:12:02   作者:brucewong0516  
這篇文章主要介紹了python numpy實現(xiàn)rolling滾動案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

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

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

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])

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

在數(shù)據(jù)分析時,特別是在分析時間序列數(shù)據(jù)時,常會需要對一個序列進行固定長度窗口的滾動計算和分析,比如計算移動均線。只要是需要根據(jù)一個時序得到一個新的時序,就往往需要進行窗口滾動。在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(可以認為是時間區(qū)間長度),通過這個參數(shù)設置窗口長度;min_periods表示窗口中需要的最小的觀測值,如果窗口中的成員個數(shù)少于這個設定的值,則這個窗口經(jīng)過計算后就會返回NaN,比如,如果min_periods設為3,但當前的窗口中只有兩個成員,那么該窗口對應的位置就會返回空值;center參數(shù)如果設為True,表示在取窗口覆蓋的區(qū)間時,以當前l(fā)abel為中心,向兩邊取,若為False,則表示以當前l(fā)abel為窗口的最右側(cè),向左側(cè)取,默認為False,要注意的是,當為True時,如果窗口長度為奇數(shù),則中心位置很好確定,就是最中間的位置,但是如果長度為偶數(shù),則默認中心位置為中間偏右的那一個位置;win_type參數(shù)表示不同的窗口類型,可以通過這個參數(shù)給窗口成員賦予不同的權(quán)重,默認為等權(quán)重;on參數(shù)表示指定對某一列進行rolling,而不是默認的對index進行rolling,要注意的是,當指定on參數(shù)時,指定的列必須是時間序列,不然rolling函數(shù)就會失效。

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

import pandas as pd
import numpy as np
df=pd.DataFrame([1,2,3,5],columns=['a'])
df
	a
0	1
1	2
2	3
3	5
 
df.rolling(3,min_periods=2).sum()
     a
0	NaN
1	3.0
2	6.0
3	10.0
 
df.rolling(4,min_periods=2,center=True).sum()
     a
0	3.0
1	6.0
2	11.0
3	10.0

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

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

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

相關文章

  • 基于Python獲取亞馬遜的評論信息的處理

    基于Python獲取亞馬遜的評論信息的處理

    這篇文章主要介紹了基于Python獲取亞馬遜的評論信息的處理方法,用戶的評論能直觀的反映當前商品值不值得購買,亞馬遜的評分信息也能獲取到做一個評分的權(quán)重,感興趣的朋友跟隨小編一起看看吧
    2022-02-02
  • django自動添加接口文檔的實現(xiàn)

    django自動添加接口文檔的實現(xiàn)

    本文詳細介紹了使用Django和drf-yasg生成API接口文檔的步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-03-03
  • Flask框架學習筆記之消息提示與異常處理操作詳解

    Flask框架學習筆記之消息提示與異常處理操作詳解

    這篇文章主要介紹了Flask框架學習筆記之消息提示與異常處理操作,結(jié)合實例形式分析了flask框架表單登陸消息提示、錯誤模板調(diào)用及異常處理相關操作技巧,需要的朋友可以參考下
    2019-08-08
  • Python 實現(xiàn)引用其他.py文件中的類和類的方法

    Python 實現(xiàn)引用其他.py文件中的類和類的方法

    下面小編就為大家分享一篇Python 實現(xiàn)引用其他.py文件中的類和類的方法,具有的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 循環(huán)神經(jīng)網(wǎng)絡TextRNN實現(xiàn)情感短文本分類任務

    循環(huán)神經(jīng)網(wǎng)絡TextRNN實現(xiàn)情感短文本分類任務

    這篇文章主要為大家介紹了循環(huán)神經(jīng)網(wǎng)絡TextRNN實現(xiàn)情感短文本分類任務詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • python實現(xiàn)一個簡單RPC框架的示例

    python實現(xiàn)一個簡單RPC框架的示例

    本文將會使用Python實現(xiàn)一個最簡單的RPC框架,不具有實用意義,但可以讓你清醒地理解RPC框架的幾個組成部分,只是比看Python自帶的xmlrpc清晰。
    2020-10-10
  • 關于python xlwings模塊用法詳解

    關于python xlwings模塊用法詳解

    xlwings是一個用于在Excel和Python之間進行交互的庫,它允許您使用Python操作Excel文件,包括讀取和寫入數(shù)據(jù),運行宏,設置格式等等,我們可以使用xlwings來處理Excel文件中的數(shù)據(jù),執(zhí)行各種操作,所以本文小編就給大家python xlwings模塊用法
    2023-09-09
  • python實現(xiàn)測試工具(二)——簡單的ui測試工具

    python實現(xiàn)測試工具(二)——簡單的ui測試工具

    這篇文章主要介紹了python如何實現(xiàn)簡單的ui測試工具,幫助大家更好的利用python進行測試工作,感興趣的朋友可以了解下
    2020-10-10
  • python交互式圖形編程實例(一)

    python交互式圖形編程實例(一)

    這篇文章主要為大家詳細介紹了python交互式圖形編程實例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Python導出并分析聊天記錄詳解流程

    Python導出并分析聊天記錄詳解流程

    這篇文章主要介紹了Python將QQ聊天記錄生成詞云的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-02-02

最新評論

乌拉特前旗| 绥芬河市| 张家界市| 文安县| 兴文县| 靖西县| 昌都县| 台前县| 阿尔山市| 正定县| 正定县| 景德镇市| 东源县| 兰坪| 凤阳县| 临洮县| 鹿邑县| 天祝| 永吉县| 安康市| 通化县| 从化市| 浏阳市| 山东省| 曲靖市| 自贡市| 广汉市| 太康县| 义乌市| 富源县| 遵义县| 西安市| 丁青县| 宜良县| 黔西县| 中方县| 奉化市| 鹤岗市| 彰化县| 桂东县| 峨山|