24

我有一组数据,如下所示:

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       

我必须将Y2表 2 中的X1值插入表 1 中的值,即,我需要找到Y2以下值的值X

    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 中使用哪种插值算法,我该如何进行?

4

1 回答 1

31

numpy.interp似乎是您想要的函数:将您X1作为第一个参数 x,您X2作为第二个参数 xp,您Y2作为第三个参数 fp,您将获得与X1坐标对应的 Y 值。

Y2_at_X1 = np.interp(X1, X2, Y2)

我假设您想完全忽略现有Y1值。这就是上面的代码片段所做的。否则,您必须澄清您的问题以解释您可能担任的角色Y1

如果您想要的不仅仅是线性插值,我建议您查看scipy.interpolate它的教程,而不是试图将 numpy 扩展到其简单性之外;-)。

于 2009-07-29T14:35:04.103 回答