typestar

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

  1. CubicSpline es suave y pasa por cada punto.
  2. interp1d todavía cubre el caso lineal simple.
  3. Un spline se puede derivar e integrar.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 2 de 2 en Cálculo e interpolación; paso 15 de 23 en Computación científica con SciPy.

← Anterior Siguiente →