私のタイムラインは、私は時間ベクトルにジャンプに表示マシンのシャットダウンを検出する必要が避けパイソンループ
シンプルnumpyのアレイに保存されている、と彼らは長い(> 10百万entrys)されています。そのシャットダウン後、次の10個の値を削除したい(スイッチがオンにされてからセンサーがしばらくの間悪い結果を出す)。
私は、次のコードを思い付いた:
Keep_data=np.empty_like(Timestamp_new,dtype=np.bool)
Keep_data[0]=False
Keep_data[1:]=Timestamp_new[1:]>(Timestamp_new[:-1]+min_shutdown_length)
for item in np.nonzero(np.logical_not(Keep_data))[0]:
Keep_data[item:min(item+10,len(Keep_data)]=False
Timestampnew=Timestampnew[Keep_data]
は、誰もが純粋なのpythonループせずに、より効果的なコードをお勧めすることはできますか?
ありがとうございます。
拳solutuionはオリジナルバージョン、BUよりも遅くなるように思われます第2のものは私にとって素晴らしい作品です。 1つの欠点は、clipingが – Okapi575
@ user3373796で行われていることです。あなたの 'min()'と同じ仕事をするためにはクリッピングが必要です。正確にそれの欠点は何ですか? – Divakar
欠点は、最後のインデックスだけでなく、すべての値に対してクリップが行われていることです。しかし、2番目の考えではわずか10%です。 とても役に立ちました。 – Okapi575