編集
私の元の投稿は最良の説明ではなかったので、書き直しました。
だから私がやろうとしているのは、データの配列で移動平均を計算することです。各平均は、たとえば 24 個の値で取得されます。ただし、現在の関数で変更する必要がある 2 つの条件があります。
- ゼロは悪いデータと見なされるため、ゼロではない 24 個の値の平均を取るので、平均には 24 個の「良い」値が必要です。
- ゼロが 5 つ連続する場合、平均をとらず、単に平均がゼロであると言いたいのです。
これは現在の関数ですが、これらの変更を含めるために更新する必要があります。
def averaged_rel_track(navg, rel_values, nb):
'''function to average the relative track values for each blade. This is
dependant on the number values specified by the user to average over in a
rolling average'''
avg_rel_track=[]
for blade in range(0,int(nb)):
av_values=[]
rel_blade=rel_values[:,int(blade)]
for rev in range(0,len(rel_blade)):
section=rel_blade[rev-int(navg)+1:rev+1]
print section
if np.any(section==0):
av_value=0
else:
av_value=np.sum(section)/int(navg)
print av_value
av_values.append(av_value)
avg_rel_track.append(av_values)
avg_rel_track=np.array(avg_rel_track)
return avg_rel_track.transpose()
現時点では、多くのチェックが含まれています。
0/なし以外のX個の値を選択できる機能はありますか? 現在、私がやろうとしていることは次のように機能します:
Select a section of data than is N values long
x= number of zeros/nan's in the data
Extend section by x values
しかし、新しいセクションにゼロが含まれておらず、元のゼロが検出されることを確認する必要があるため、これは機能しません。拡張子のゼロをチェックしてプロセスを繰り返すことはできましたが、これは非常に長い方法のようです。
scipy.stats.nanmean
データを平均化するときに none 値を無視することを知っています。
誰かがそれを助けることができれば素晴らしいことですが、私がアドバイスしたい主な質問は次のとおりです。
ゼロでも1でもないN個の値を選択する関数はありますか?