SciPy scipy.interpolate.interp1d 関数

Suraj Joshi 2023年1月30日
  1. データポイントを補間するための scipy.interpolate.interp1d() の構文:
  2. コード例:scipy.interpolate.interp1d() を使用したデータポイント間の 1d 線形補間
  3. コード例:scipy.interpolate.interp1d() メソッドで kind パラメーターを設定する
SciPy scipy.interpolate.interp1d 関数

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()

出力:

scipyinterp1d メソッドを使用した 1d 補間

ここでは、x_valuey_value の関係を近似する関数を補間または作成しようとします。上記のコードでは、x_valuey_value がランダムに取得されます。次に、値が引数として interp1d 関数に渡されます。interp1d 関数は、補間関数を決定します。これで、x_new の範囲内の任意の x_value に対して任意の y_value を求めることができます。

最後に、補間関数がどのように見えるかを視覚化するために、04 の間の 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()

出力:

scipyinterp1d メソッドを使用して 1d 補間で種類パラメーターを設定します

上記のプロットは、linearquadratic 手法を使用して近似された内挿関数を示しています。プロットのの線は linear 法を使用した補間線を表し、プロットのの線は quadratic 法を使用した内挿線を表します。

したがって、要約すると、interp1d クラスは、提供されたデータポイントを使用して関数を計算するために使用され、線形補間を使用して、指定されたドメイン内の任意の場所でいつでも計算できます。

著者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn