【发布时间】:2019-09-18 20:18:02
【问题描述】:
我有一个随机变量X 随机采样T 类似于这个玩具数据:
import numpy as np
T = np.random.exponential(size=1000).cumsum()
X = np.random.normal(size=1000)
一个关键点是采样间隔是不均匀的:我的意思是np.diff(T) 的所有元素都不相等。我需要以指定宽度dt 以均匀间隔重新采样时间序列T,X,这意味着(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。
是否有另一种方法可以尝试以宽度 dt 的均匀间隔对时间序列 T,X 重新采样?
【问题讨论】: