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