特定の期間における、時間の経過に伴うシグナルの集計平均を計算したいと考えています。これが科学的にどのように呼ばれているかはわかりません。
例: 15 分の値で 1 年間の電力消費量があります。1 日の時間別の平均消費量 (24 値) を知りたいです。しかし、それはより複雑です: 15 分のステップの間にさらに多くの測定値があり、それらがどこにあるかを予測することはできません. ただし、正しい「重み」で考慮に入れる必要があります。
動作する関数を書きましたが、非常に遅いです。テストのセットアップは次のとおりです。
import numpy as np
signal = np.arange(6)
time = np.array([0, 2, 3.5, 4, 6, 8])
period = 4
interval = 2
def aggregate(signal, time, period, interval):
pass
aggregated = aggregate(signal, time, period, interval)
# This should be the result: aggregated = array([ 2. , 3.125])
aggregated
値を持つ必要がありperiod/interval
ます。これは手動計算です。
aggregated[0] = (np.trapz(y=np.array([0, 1]), x=np.array([0, 2]))/interval + \
np.trapz(y=np.array([3, 4]), x=np.array([4, 6]))/interval) / (period/interval)
aggregated[1] = (np.trapz(y=np.array([1, 2, 3]), x=np.array([2, 3.5, 4]))/interval + \
np.trapz(y=np.array([4, 5]), x=np.array([6, 8]))/interval) / (period/interval)
最後の詳細: 効率的でなければならないため、私自身のソリューションは役に立ちません。多分私はnumpyまたはscipyメソッドを見落としていますか? それとも、これはパンダができることですか?どうもありがとうございました。