Python 插值
我有一组数据,长得像这样:
Table-1
X1 | Y1
------+--------
0.1 | 0.52147
0.02 | 0.8879
0.08 | 0.901
0.11 | 1.55
0.15 | 1.82
0.152 | 1.95
Table-2
X2 | Y2
-----+------
0.2 | 0.11
0.21 | 0.112
0.34 | 0.120
0.33 | 1.121
我需要从表2中找出Y2
的值,来对应表1中的X1
值,也就是说,我需要为以下的X
值找到Y2
的值:
X1 | Y2
-------+-------
0.1 |
0.02 |
0.08 |
0.11 |
0.15 |
0.152 |
注意:表1和表2的间隔不一样。也就是说,(X, Y)的数量会不同,比如这里表1有6个(X1, Y1)的条目,而表2只有4个(X2, Y2)的条目。
我应该在Numpy中使用哪个插值算法,接下来该怎么做呢?
1 个回答
32
numpy.interp
这个函数看起来正是你需要的:把你的 X1
作为第一个参数 x,X2
作为第二个参数 xp,Y2
作为第三个参数 fp,这样你就能得到与 X1
坐标对应的 Y 值。
Y2_at_X1 = np.interp(X1, X2, Y2)
我假设你想完全忽略现有的 Y1
值。这段代码就是这么做的。否则你需要更清楚地说明你对 Y1
的需求是什么!
如果你想要的不仅仅是线性插值,我建议你看看 scipy.interpolate
以及它的 教程,而不是试图让 numpy 超出它的简单性 ;-).