質問: 加速度のようなデータを連続して取得した場合に一番振幅が激しい場所を特定のarray数で抽出したいと考えた時、どのようなプログラムが一番望ましいでしょうか。 例えば ``` a=np.random.uniform(-0.5,0.5,100) b=np.random.uniform(-2,2,100) c=np.random.uniform(-0.5,1,100) d=np.hstack((a,b)) e=np.hstack((d,c)) plt.plot(e) plt.show() コード ``` ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/86eb078603466ba24ef5f359ae2cda73.png) ランダムでデータを作成。 このデータから振幅が激しい部分を含めたarray raw150を取り出したいとすると np.max(e)で最大値を計算して、その前後を取り出すような方法だといまいちだと思うのですが、何か最適ないい方法がありますでしょうか。 追記 ``` num=10 #移動平均の個数 b=np.ones(num)/num e_=np.convolve(e, b, mode='same')#移動平均 f=e-e_ f=f*f f_=np.convolve(f,b,mode="same") plt.plot(e,label="original") plt.plot(f_,label="ido_heikin") plt.grid() plt.legend() plt.show() ``` ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/d9fa90e44843374b455a308eb18675da.png) 教えていただいたやり方で移動平均のグラフ化まで行なってみました。
回答: "激しさ"がどういうのをイメージしているのかわからなかったので 適当に作りました もとの信号の適当な区間幅の移動平均をとって もとの信号から引いて それを二乗して 適当な区間幅の移動平均をとったものが赤線になります。 !イメージ説明