2017-11-16 5 views
-1

私は時系列(値の配列)を持っており、値の長いドロップが始まる(少なくともX連続する値が下がる)開始点を見つけたいと思います。たとえば:値騒々しい時系列のドロップを見つける既存の方法はありますか?

[1,2,3,4,3,4,5,4,3,4,5,4,3,2,1,2,3,2,3,4,3,4,5,6,7,8] 

のリストを持って

私は、少なくとも5つの連続値のドロップを見つけるしたいと思います。この場合、私はセグメント5,4,3,2,1を見つけるでしょう。

しかし実際のシナリオでは、データにノイズが存在するため、実際のドロップには少しの浮き沈みが多く含まれています。

これのためのアルゴリズムを書くことができます。しかし、私は、このタイプの分析のための既存のライブラリまたは標準的な信号処理方法があるかどうか疑問に思っていました。

答えて

2

これは、あなたが持っていると知っているパンダでかなり簡単に行うことができます。あなたのリストは、シリーズに変換した後、連続して減少した値を見つけるためにgroupby + countを実行:あなたは、これがどのように機能するかを少し説明してもらえ

v = pd.Series([...]) 
v[v.groupby(v.diff().gt(0).cumsum()).transform('size').ge(5)] 

10 5 
11 4 
12 3 
13 2 
14 1 
dtype: int64 
+0

を?私はパンダの基本的な経験があります。これは、減少の途中でわずかな増加があるかもしれないという事実を説明していますか? – swbandit

+0

@swbandit増加の少しの増加ですか?基本的に、私がやっているのは、連続した値のグループを見つけ、各値のグループをグループ化し、5より小さいグループを取り除くことです。 –

+0

申し訳ありませんが、つまり、あなたは5,4,3,2,3,2,1を持つことができます。 – swbandit

関連する問題