Vue d'ensemble
SciPy 1.10, publié le 4 janvier 2023, introduit CubicHermiteSpline et améliore les méthodes d'interpolation existantes.
Fonctionnalités principales
CubicHermiteSpline
La nouvelle classe CubicHermiteSpline permet une interpolation cubique par morceaux avec contrôle des dérivées aux points de données, offrant un lissage plus fin que les splines classiques.
python
from scipy.interpolate import CubicHermiteSpline
import numpy as np
x = np.array([0.0, 1.0, 2.0, 3.0])
y = np.array([0.0, 1.0, 0.0, 1.0])
dydx = np.array([1.0, 0.0, -1.0, 0.0]) # dérivées
spline = CubicHermiteSpline(x, y, dydx)
x_fin = np.linspace(0, 3, 50)
y_fin = spline(x_fin)
print(f'Max interpolé : {y_fin.max():.3f}')
Interpolation améliorée
Le module scipy.interpolate bénéficie de performances accrues et de nouvelles options pour les interpolations multidimensionnelles, notamment un meilleur support des grilles irrégulières.
python
from scipy.interpolate import RegularGridInterpolator
import numpy as np
x = np.linspace(0, 1, 10)
y = np.linspace(0, 1, 10)
donnees = np.random.rand(10, 10)
interp = RegularGridInterpolator((x, y), donnees)
points = np.array([[0.5, 0.5], [0.2, 0.8]])
print(interp(points))
