時系列 (unix タイムスタンプ) を含む numpy 配列が 2 つあります。差がしきい値内にあるタイムスタンプのペア(各配列から 1 つ)を見つけ
たいです。
これを実現するには、2 つの時系列データを 2 つの配列に配置して、各インデックスが最も近いペアを持つようにする必要があります。(配列内の2つのタイムスタンプが別の配列内の別のタイムスタンプに等しく近い場合、ペアの数が実際の値よりも重要であるため、どちらを選択してもかまいません。)
したがって、アラインされたデータ セットには、同じサイズの2 つの配列と、空のデータで埋められた小さい方の配列があります。
timeseries
パッケージとalign
関数を使用することを考えていました。しかし、時系列である私のデータに整列を使用する方法がわかり
ません。
例では、2 つの時系列配列を考えます。
ts1=np.array([ 1311242821.0, 1311242882.0, 1311244025.0, 1311244145.0, 1311251330.0,
1311282555.0, 1311282614.0])
ts2=np.array([ 1311226761.0, 1311227001.0, 1311257033.0, 1311257094.0, 1311281265.0])
出力サンプル:
の場合ts2[2] (1311257033.0)
、その最も近いペアはts1[4] (1311251330.0)
、差が5703.0
で、これは 内にthreshold
あり、最小であるためです。ts2[2]
とts1[4]
はすでにペアになっているので、他の計算から除外する必要があります。
そのようなペアが見つかるはずなので、出力配列は実際の配列よりも長くなる可能性があります
abs(ts1[0]-ts2[0]) = 16060
abs(ts1[0]-ts2[1]) = 15820 //ペア
abs(ts1[0]-ts2[2]) = 14212
abs(ts1[0 ]-ts2[3]) = 14273
abs(ts1[0]-ts2[4]) = 38444
abs(ts1[1]-ts2[0]) = 16121
abs(ts1[1]-ts2[1]) = 15881
abs(ts1[1]-ts2[2]) = 14151
abs(ts1[1]-ts2 [3]) = 14212
abs(ts1[1]-ts2[4]) = 38383
abs(ts1[2]-ts2[0]) = 17264
abs(ts1[2]-ts2[1]) = 17024
abs(ts1[2]-ts2[2]) = 13008
abs(ts1[2]-ts2 [3]) = 13069
abs(ts1[2]-ts2[4]) = 37240
abs(ts1[3]-ts2[0]) = 17384
abs(ts1[3]-ts2[1]) = 17144
abs(ts1[3]-ts2[2]) = 12888
abs(ts1[3]-ts2 [3]) = 17144
abs(ts1[3]-ts2[4]) = 37120
abs(ts1[4]-ts2[0]) = 24569
abs(ts1[4]-ts2[1]) = 24329
abs(ts1[4]-ts2[2]) = 5703 //ペア
abs( ts1[4] ]-ts2[3]) = 5764
abs(ts1[4]-ts2[4]) = 29935
abs(ts1[5]-ts2[0]) = 55794
abs(ts1[5]-ts2[1]) = 55554
abs(ts1[5]-ts2[2]) = 25522
abs(ts1[5]-ts2 [3]) = 25461
abs(ts1[5]-ts2[4]) = 1290 //ペア
abs(ts1[6]-ts2[0]) = 55853
abs(ts1[6]-ts2[1]) = 55613
abs(ts1[6]-ts2[2]) = 25581
abs(ts1[6]-ts2 [3]) = 25520
abs(ts1[6]-ts2[4]) = 1349
したがって、ペアは次のとおりです: ( ts1[0],ts2[1]), (ts1[4],ts2[2]), (ts1[5],ts2[4]
)
残りの要素はnull
ペアとして持つ必要があり
ます 最後の 2 つの配列のサイズは 9 になります。
この質問が明確かどうか教えてください。