Fonction SciPy scipy.interpolate.interp1d
-
Syntaxe de
scipy.interpolate.interp1d()
pour interpoler les points de données : -
Exemple de code : Interpolation linéaire 1d entre points de données avec
scipy.interpolate.interp1d()
-
Exemple de code : Définir le paramètre
kind
dans la méthodescipy.interpolate.interp1d()
La classe Python Scipy scipy.interpolate.interp1d()
est utilisée pour interpoler une fonction unidimensionnelle. Une fonction unidimensionnelle prend une seule valeur d’entrée comme paramètre et renvoie une seule valeur de sortie analysée.
Normalement, nous avons une série de points de données dans des emplacements discrets. Maintenant, nous essayons d’approximer la fonction qui peut trouver des valeurs y pour n’importe quelles valeurs x données entre ces points donnés.
Syntaxe de scipy.interpolate.interp1d()
pour interpoler les points de données :
scipy.interpolate.interp1d(x, y, kind)
Paramètres
x |
Comme un tableau. Il s’agit de l’ensemble de valeurs d’entrée fourni à la fonction. |
y |
Comme un tableau. Il s’agit de la valeur d’entrée définie en fonction de x. |
kind |
C’est un paramètre facultatif. Il spécifie le type d’interpolation. Par défaut, il est réglé sur linear . |
Retourner
Il renvoie une fonction.
Exemple de code : Interpolation linéaire 1d entre points de données avec scipy.interpolate.interp1d()
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()
Production :
Ici, nous essayons d’interpoler ou de créer une fonction approximant la relation entre x_value
et y_value
. Dans le code ci-dessus, les valeurs x_value
et y_value
sont prises au hasard. Ensuite, les valeurs sont passées comme argument dans la fonction interp1d
, qui détermine la fonction d’interpolation function
. Maintenant, nous pouvons trouver n’importe quelle y_value
pour n’importe quelle x_value
dans l’intervalle de x_new
.
Enfin, pour visualiser à quoi ressemble la fonction d’interpolation, nous prenons 10
points entre 0
et 4
et traçons la courbe linéaire de la fonction représentée par la courbe noire
sur la figure.
Comme nous n’avons pas défini le type de courbe que nous voulons interpoler, par défaut, la méthode interp1d
nous montre une ligne droite linéaire entre les points.
Exemple de code : Définir le paramètre kind
dans la méthode scipy.interpolate.interp1d()
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()
Production :
Le graphique ci-dessus montre des fonctions d’interpolation approximées à l’aide de techniques linear
et quadratic
. La ligne noire
du graphique représente la ligne interpolée en utilisant la méthode linéaire
, et la ligne verte
du graphique représente la ligne interpolée en utilisant la méthode quadratic
.
Ainsi, pour résumer, la classe interp1d
est utilisée pour calculer une fonction à l’aide des points de données fournis et peut être calculée à tout moment, n’importe où spécifié dans le domaine donné en utilisant une interpolation linéaire.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn