-
numpy.interp(x, xp, fp, left=None, right=None, period=None)
[source] -
Interpolación lineal unidimensional.
Devuelve el interpolante lineal unidimensional por partes a una función con puntos de datos discretos dados (
xp
,fp
), evaluado enx
.- Parámetros
-
-
xarray_like
-
Las coordenadas x en las que evaluar los valores interpolados.
-
xp1-D sequence of floats
-
Las coordenadas x de los puntos de datos deben aumentar si el argumento
period
no se especifica. De lo contrario,xp
se ordena internamente después de normalizar los límites periódicos conxp = xp % period
. -
fp1-D sequence of float or complex
-
Las coordenadas y de los puntos de datos, de la misma longitud que
xp
. -
leftoptional float or complex corresponding to fp
-
Valor para devolver
x < xp[0]
, el valor predeterminado esfp[0]
. -
rightoptional float or complex corresponding to fp
-
Valor para devolver
x > xp[-1]
, el valor predeterminado esfp[-1]
. -
periodNone or float, optional
-
Un período para las coordenadas x. Este parámetro permite la interpolación adecuada de coordenadas x angulares. Parámetros
left
yright
son ignorados siperiod
está especificado.Nuevo en la versión 1.10.0.
-
- Devoluciones
-
-
yfloat or complex (corresponding to fp) or ndarray
-
Los valores interpolados, la misma forma que
x
.
-
- Eleva
-
- ValueError
-
Si
xp
yfp
tienen diferente longitud sixp
ofp
no son secuencias 1-D Siperiod == 0
Ver también
Notas
Se espera que la secuencia de coordenadas x aumente, pero esto no se aplica explícitamente. Sin embargo, si la secuencia
xp
no aumenta, los resultados de la interpolación no tienen sentido.Tenga en cuenta que, dado que NaN no se puede ordenar,
xp
tampoco puede contener NaN.Un simple cheque para
xp
ser estrictamente creciente es:np.all(np.diff(xp) > 0)
Ejemplos de
>>> xp = [1, 2, 3] >>> fp = [3, 2, 0] >>> np.interp(2.5, xp, fp) 1.0 >>> np.interp([0, 1, 1.5, 2.72, 3.14], xp, fp) array([3. , 3. , 2.5 , 0.56, 0. ]) >>> UNDEF = -99.0 >>> np.interp(3.14, xp, fp, right=UNDEF) -99.0
Grafique un interpolante para la función seno:
>>> x = np.linspace(0, 2*np.pi, 10) >>> y = np.sin(x) >>> xvals = np.linspace(0, 2*np.pi, 50) >>> yinterp = np.interp(xvals, x, y) >>> import matplotlib.pyplot as plt >>> plt.plot(x, y, 'o') [<matplotlib.lines.Line2D object at 0x...>] >>> plt.plot(xvals, yinterp, '-x') [<matplotlib.lines.Line2D object at 0x...>] >>> plt.show()
Interpolación con coordenadas x periódicas:
>>> x = [-180, -170, -185, 185, -10, -5, 0, 365] >>> xp = [190, -190, 350, -350] >>> fp = [5, 10, 3, 4] >>> np.interp(x, xp, fp, period=360) array([7.5 , 5. , 8.75, 6.25, 3. , 3.25, 3.5 , 3.75])
Interpolación compleja:
>>> x = [1.5, 4.0] >>> xp = [2,3,5] >>> fp = [1.0j, 0, 2+3j] >>> np.interp(x, xp, fp) array([0.+1.j , 1.+1.5j])
Ejemplo de numpy.interp ()
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)