gpt4 book ai didi

numpy - 在 numpy/scipy 中以统一间隔重新采样时间序列?

转载 作者:行者123 更新时间:2023-12-03 23:50:57 24 4
gpt4 key购买 nike

我有一个随机变量 X随机采样 T类似于这个玩具数据:

import numpy as np
T = np.random.exponential(size=1000).cumsum()
X = np.random.normal(size=1000)

这个时间序列看起来像这样:
enter image description here

一个关键点是采样间隔是不均匀的:我的意思是 np.diff(T) 的所有元素不相等。我需要重新采样时间序列 T,X在具有指定宽度的均匀间隔上 dt , 意思 (np.diff(T)==dt).all()应该返回 True .

我可以使用 scipy.interpolate.interp1d 以均匀间隔重新采样时间序列,但这种方法不允许我指定区间大小 dt :
from scipy.interpolate import interp1d
T = np.linspace(T.min(),T.max(),T.size) # same range and size with a uniform interval
F = interp1d(T,X,fill_value='extrapolate') # resample the series on uniform interval
X = F(T) # Now it's resampled.

关键问题是 interp1d不接受数组 T除非 T.size==X.size .

是否有另一种方法可以尝试重新采样时间序列 T,X宽度均匀间隔 dt ?

最佳答案

dt = ...
from scipy.interpolate import interp1d
Told = np.arange(T.min(),T.max(),T.size)
F = interp1d(Told,X,fill_value='extrapolate')
Tnew = np.linspace(T.min(), T.max(), dt)
Xnew = F(Tnew)

关于numpy - 在 numpy/scipy 中以统一间隔重新采样时间序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58000189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com