時系列データを結合(測定値の位置合わせ)

Numpy: How to best align two sorted arrays? – StackOverflow

データ長を合わせて,欠損値を前の値で補間する様な処理.

import numpy as np


def align_arr(*arr):
    sarr = np.union1d(*arr)
    return [np.maximum.accumulate(np.isin(sarr, a)*sarr) for a in arr]


a = np.array([0, 10, 12, 16, 25, 29])
b = np.array([0,  5, 10, 15, 20, 25, 30])
# [0,0,10,12,12,16,16,25,29,29]
# [0,5,10,10,15,15,20,25,25,30]
align_arr(a, b)
[array([ 0,  0, 10, 12, 12, 16, 16, 25, 29, 29]),
 array([ 0,  5, 10, 10, 15, 15, 20, 25, 25, 30])]
カテゴリー: 未分類 パーマリンク