亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

平均法下采樣

平均法下采樣

大話西游666 2021-08-11 17:10:34
我有一個2維度數據框,我想按行進行下采樣。因此,如果我有一個100x2000數據框,我希望它是100x500例如。我試過滾動平均值,但輸出的尺寸是基于列重新采樣的,并且仍然是原始形狀。試圖尋找其他方式我也找到了 signal.resample 但我相信它不適合我的場景。如果我有,[2,4,6,8,10,12,14,16,18]我想有一個輸出[4,10,16],這意味著一個3數字的滑動窗口,同時計算平均值有任何想法嗎?
查看完整描述

3 回答

?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

與numpy.convolve:


import numpy as np


arr = np.array([2,4,6,8,10,12,14,16,18])

n = 3

window = (1.0 / n) * np.ones(n,)

res = np.convolve(arr, window, mode='valid')[::n]

對于 2 x N 陣列:


from scipy import signal


arr = np.array([[2,4,6,8,10,12,14,16,18], [12,14,16,18,110,112,114,116,118]])

window = (1.0 / n) * np.ones((1, n))

#res = np.convolve(arr, window, mode='valid')[::n]

res = signal.convolve2d(arr, window, mode='valid')[:, ::n]


查看完整回答
反對 回復 2021-08-11
?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

def mean_pandas(your_df, start_roling=0, mean_roling = 3):

    a = [df.iloc[:,range(i,i+mean_roling)].mean(axis=1) for i in range(start_roling,len(df),mean_roling) if i+mean_roling<=len(df)]

    b = pd.DataFrame(np.array(a).T)

    return b


mean_pandas(your_df, 0, 3)


查看完整回答
反對 回復 2021-08-11
  • 3 回答
  • 0 關注
  • 240 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號