Interpolación en Python
Rellenar entre muestras: lineal, spline cúbico o un ajuste suavizado.
import numpy as np
from scipy import interpolate
dias = np.array([0, 5, 10, 15, 20])
tpm = np.array([80.0, 88.0, 95.0, 99.0, 104.0])
spline = interpolate.CubicSpline(dias, tpm)
print(spline(np.array([2.5, 7.5, 12.5])).round(2))
print(round(float(spline(7.5, 1)), 4),
round(float(spline.integrate(0, 20)), 2))
lineal = interpolate.interp1d(dias, tpm, kind="linear")
print(lineal(np.array([2.5, 12.5])).round(2))
print(np.interp(2.5, dias, tpm).round(2))
Cómo funciona
CubicSplinees suave y pasa por cada punto.interp1dtodavía cubre el caso lineal simple.- Un spline se puede derivar e integrar.
Palabras clave y builtins usados aquí
asfloatprintround
El intento, en números
- Líneas
- 14
- Caracteres a escribir
- 455
- Tokens
- 166
- Ritmo de tres estrellas
- 110 tpm
Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 91 segundos.
Paso 2 de 2 en Cálculo e interpolación; paso 15 de 23 en Computación científica con SciPy.