下采样非均匀1D信号

时间:2014-08-25 19:43:56

标签: python numpy scipy

我有两个1D numpy数组:xy其中x在x轴上保存我的样本y的位置。假设x跨越minXmaxX,我想定期对两个数组进行采样,例如np.linspace(minX, maxX, 1000)

我怎么能在numpy中做到这一点?我可以用1D插值解决这个问题吗?

1 个答案:

答案 0 :(得分:4)

np.interp执行一维线性插值:

newx = np.linspace(minX, maxX, 1000)
newy = np.interp(newx, x, y)

或者,使用scipy.interpolate.interp1d,您可以使用样条线进行插值。例如,kind='cubic'为您提供三阶样条插值:

import scipy.interpolate as interpolate
newx = np.linspace(minX, maxX, 1000)
newy = interpolate.interp1d(x, y, kind='cubic')(newx)