移動平均
同義語:moving mean
np.convolve 関数を使って移動平均を求めることができる。要素数$ n のとき $ [1/n, 1/n, ...1/n] のベクトルをウインドウに利用する。
code:p1.py
import numpy as np
data = np.arange(4)
n = 3 # ウインドウ長
win = np.ones(n)/n # ウインドウ
mean = np.convolve(data, win)
print(len(data), data)
print(len(mean), mean)
'''結果
4 0 1 2 3
6 0. 0.33333333 1. 2. 1.66666667 1.
'''
modeオプションには'full', 'same', 'valid'の3通りがある。
code:result.py
print('# full\n', np.convolve(data, win, mode='full')) # ウインドウが少しでも重なれば計算
print('# same\n', np.convolve(data, win, mode='same')) # 同じ長さとなるようウインドウの途中から計算
print('# valid\n', np.convolve(data, win, mode='valid')) # ウインドウが全て重なる要素で計算
'''
# full
0. 0.33333333 1. 2. 1.66666667 1.
# same
0.33333333 1. 2. 1.66666667
# valid
1. 2.
'''