如果标题令人困惑,我很抱歉,我真的不敢想如何简明扼要地说出来。
我有两个xy
个文件,这两个文件在x轴(0到130)中覆盖相同的范围,但是其中一个有109个样本而另一个有81个 - 格式如下:
x1 data1
...
x109 data109
和
x1 data1
...
x81 data81
我想插入第二个,这样它也有109个样本,这将允许我直接比较沿x轴的每个给定位置的数据。或者甚至可以插入它们,以便它们每个都有100个样本。
通过一些研究,我认为 Scipy spline会做我想要做的事情,但是我有点困惑如何让它发挥作用。
任何帮助将不胜感激。如果你知道另一种方法,我愿意接受它。提前谢谢。
答案 0 :(得分:2)
您链接的UnivariateSpline
代码是较低级别的例程 - 对您的案例使用scipy.interpolate.interp1d
可能更好。
就您的数据而言,您应该能够使用np.loadtxt
读取文件,将列提取为numpy数组,然后使用interp1d
,如下所示:
x1, y1 = np.loadtxt('file1.txt').transpose()
x2, y2 = np.loadtxt('file2.txt').transpose()
# interpolate (x2, y2) onto grid x1
from scipy.interpolate import interp1d
func = interp1d(x2, y2, kind='cubic')
y2_interp = func(x1)