SciPy scipy.interpolate.interp1d 関数
- 
          
            データポイントを補間するための scipy.interpolate.interp1d()の構文:
- 
          
            コード例:scipy.interpolate.interp1d()を使用したデータポイント間の1d 線形補間
- 
          
            コード例:scipy.interpolate.interp1d()メソッドでkindパラメーターを設定する
 
Python Scipy scipy.interpolate.interp1d() クラスは、1 次元関数を補間するために使用されます。1 次元関数は、パラメーターとして単一の入力値を取り、単一の分析された出力値を返します。
通常、個別の場所に一連のデータポイントがあります。ここで、これらの指定されたポイント間の任意の x 値の y 値を求めることができる関数を近似しようとしています。
データポイントを補間するための scipy.interpolate.interp1d() の構文:
    
scipy.interpolate.interp1d(x, y, kind)
パラメーター
| x | 配列のような。これは、関数に提供される値の入力セットです。 | 
| y | 配列のような。x に基づいて定義された入力値です。 | 
| kind | これはオプションのパラメータです。補間の種類を指定します。デフォルトでは、 linearに設定されています。 | 
戻り値
この関数は、関数を返します。
コード例:scipy.interpolate.interp1d() を使用したデータポイント間の 1d 線形補間
import numpy as np
import matplotlib.pyplot as plt
import scipy
from scipy import interpolate
x_value = np.array([0, 1, 2, 4])
y_value = np.array([2, 3, 12, 147])
function = scipy.interpolate.interp1d(x_value, y_value)
x_new = np.linspace(0, 4, 10)
plt.scatter(x_value, y_value, color="blue")
plt.plot(x_new, function(x_new), color="black")
plt.xlabel("X-Values")
plt.ylabel("Y-Values")
plt.title("1d Interpolation using scipy interp1d method")
plt.show()
出力:

ここでは、x_value と y_value の関係を近似する関数を補間または作成しようとします。上記のコードでは、x_value と y_value がランダムに取得されます。次に、値が引数として interp1d 関数に渡されます。interp1d 関数は、補間関数を決定します。これで、x_new の範囲内の任意の x_value に対して任意の y_value を求めることができます。
最後に、補間関数がどのように見えるかを視覚化するために、0 と 4 の間の 10 ポイントを取り、図の黒曲線で表される関数の線曲線をプロットします。
補間する曲線の種類を設定していないため、デフォルトでは、interp1d メソッドはポイント間の直線を示します。
コード例:scipy.interpolate.interp1d() メソッドで kind パラメーターを設定する
import numpy as np
import matplotlib.pyplot as plt
import scipy
from scipy import interpolate
x_value = np.array([0, 1, 2, 4])
y_value = np.array([2, 3, 12, 147])
f_linear = scipy.interpolate.interp1d(x_value, y_value)
f_quad = scipy.interpolate.interp1d(x_value, y_value, kind="quadratic")
x_new = np.linspace(0, 4, 4)
plt.scatter(x_value, y_value, color="blue")
plt.plot(x_new, f_linear(x_new), color="black")
plt.plot(x_new, f_quad(x_new), color="green")
plt.xlabel("X-Values")
plt.ylabel("Y-Values")
plt.title("1d Interpolation using scipy interp1d method")
plt.legend(["linear", "quadratic", "data"], loc="best")
plt.show()
出力:

上記のプロットは、linear と quadratic 手法を使用して近似された内挿関数を示しています。プロットの黒の線は linear 法を使用した補間線を表し、プロットの緑の線は quadratic 法を使用した内挿線を表します。
したがって、要約すると、interp1d クラスは、提供されたデータポイントを使用して関数を計算するために使用され、線形補間を使用して、指定されたドメイン内の任意の場所でいつでも計算できます。
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn