はじめに
配列を一定幅で切り出して分割する、いわゆるsliding windowは時系列データなどを扱うときに何かと便利です。ピリオドグラムやウェルチのパワースペクトル、短時間フーリエ変換などよく使われているのですが、see alsoに分割するときに用いる関数が載っていない。
ということで調べてそれっぽい引数で作ってみることにしました。といってもnumpy.lib.stride_tricks.sliding_window_view
を用いれば苦労なく完成ですね。つまりは備忘録です。
コード
from numpy.lib.stride_tricks import sliding_window_view
def divide_by_sliding_window(a, nperseg=256, noverlap=None):
if noverlap == None:
noverlap = nperseg // 2
nstep = nperseg - noverlap
return sliding_window_view(a, nperseg)[::nstep]
引数はscipy
の関数に倣いました。