2014-12-30 9 views

risposta

11
  • nearest "scatta" al punto dati più vicino.
  • zero è una spline di ordine zero. Il valore in qualsiasi punto è l'ultimo valore non elaborato visualizzato.
  • linear esegue l'interpolazione lineare e slinear utilizza una prima spline di ordine . Usano codice diverso e can produce similar but subtly different results.
  • quadratic utilizza l'interpolazione spline di secondo ordine.
  • cubic utilizza l'interpolazione di spline di terzo ordine.

Si noti che il parametro k può anche accettare un numero intero che specifica l'ordine di interpolazione spline.


import numpy as np 
import matplotlib.pyplot as plt 
import scipy.interpolate as interpolate 

np.random.seed(6) 
kinds = ('nearest', 'zero', 'linear', 'slinear', 'quadratic', 'cubic') 

N = 10 
x = np.linspace(0, 1, N) 
y = np.random.randint(10, size=(N,)) 

new_x = np.linspace(0, 1, 28) 
fig, axs = plt.subplots(nrows=len(kinds)+1, sharex=True) 
axs[0].plot(x, y, 'bo-') 
axs[0].set_title('raw') 
for ax, kind in zip(axs[1:], kinds): 
    new_y = interpolate.interp1d(x, y, kind=kind)(new_x) 
    ax.plot(new_x, new_y, 'ro-') 
    ax.set_title(kind) 

plt.show() 

enter image description here

+0

lineare e slinear non sempre producono lo stesso risultato in alcuni casi patologici, vedere http://gist.github.com/stringfellow/8ae4d3f25ca525e75bb79c01fbda4a24 –

+0

@StevePike: E 'molto interessante, ma sembra che potrebbe essere un problema specifico per Panda, non scipy. Vale a dire, quando adattare i dati al mio codice sopra (senza Pandas), 'interpolate.interp1d' sembra produrre gli stessi risultati quando' kind = 'linear'' o 'kind =' slinear''. – unutbu

+0

aha .. buona cattura! Ho pensato che i panda lo passassero attraverso ... sciocco! Abbastanza confuso .. –

0

'vicina' restituisce punto di dati da X più vicino all'argomento, o interpolates function y=f(x) at the point x using the data point nearest to x

'zero' direi è equivalente a troncamento di argomentazione e quindi utilizzando punto dati più vicino a zero

Problemi correlati