非均匀1D信号的下采样

3
我有两个1D numpy数组:xy,其中x保存了我的样本y在x轴上的位置。假设x跨越minXmaxX,我想以常规间隔对两个数组进行采样,例如np.linspace(minX, maxX, 1000)
如何在numpy中实现呢?我是否可以用1D插值来解决这个问题?
1个回答

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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接