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

Sources