web-dev-qa-db-ja.com

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       

Table-2のY2値をTable-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ではどの補間アルゴリズムを使用する必要がありますか?どのように進めますか?

22
pear

numpy.interp はあなたが望む関数のようです:X1を最初の引数xとして渡し、あなたのX2を2番目の引数xpとして渡してください、あなたのY2を3番目の引数fpとして指定すると、X1座標に対応するY値が取得されます。

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

既存のY1の値を完全に無視することを想定しています。これは、上記のスニペットが行うことです。それ以外の場合は、Y1にどのような役割があるかを説明するために質問を明確にする必要があります。

線形補間以上の機能が必要な場合は、単純さを超えてnumpyを伸ばすのではなく、 scipy.interpolate およびその tutorial を参照することをお勧めします;-)。

30
Alex Martelli