問題は、プロットと分析のデータ量を減らしたいことです。Python と Numpy を使用しています。データは不均等にサンプリングされるため、タイムスタンプの配列と対応する値の配列があります。データポイント間に少なくとも一定の時間が必要です。ここでは、サンプル間に少なくとも 1 秒ある場所にインデックスが見つかる、Python で書かれた簡単なソリューションがあります。
import numpy as np
t = np.array([0, 0.1, 0.2, 0.3, 1.0, 2.0, 4.0, 4.1, 4.3, 5.0 ]) # seconds
v = np.array([0, 0.0, 2.0, 2.0, 2.0, 4.0, 4.0, 5.0, 5.0, 5.0 ])
idx = [0]
last_t = t[0]
min_dif = 1.0 # Minimum distance between samples in time
for i in range(1, len(t)):
if last_t + min_dif <= t[i]:
last_t = t[i]
idx.append(i)
結果を見ると:
--> print idx
[0, 4, 5, 6, 9]
--> print t[idx]
[ 0. 1. 2. 4. 5.]
問題は、特に配列が非常に長い場合、これをより効果的に行うにはどうすればよいかということです。同様のことを行う NumPy または SciPy メソッドに組み込まれているものはありますか?