我有两个1D numpy数组:x
和y
其中x
在x轴上保存我的样本y
的位置。假设x
跨越minX
和maxX
,我想定期对两个数组进行采样,例如np.linspace(minX, maxX, 1000)
。
我怎么能在numpy中做到这一点?我可以用1D插值解决这个问题吗?
答案 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)