python-对非均匀一维信号进行下采样

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

我该如何在numpy中做到这一点?一维插值可以解决这个问题吗?

解决方法:

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)
上一篇:如何使用Python生成正弦波?


下一篇:python-函数适用于数据帧的每一行,但不使用df.apply