2014-12-30 23 views

cevap

11
  • doğru yakın kullanılarak nearest, en yakın veri noktasına "yapışır".
  • zero sıfır sıralı bir splinedır. Herhangi bir noktada değer, görülen son ham değerdir.
  • linear doğrusal enterpolasyon gerçekleştirir ve slinear, ilk sipariş spline kullanır. Farklı kod kullanırlar ve can produce similar but subtly different results.
  • quadratic ikinci sırada spline enterpolasyonu kullanır.
  • cubic üçüncü sıra spline enterpolasyonunu kullanır.

k parametresinin, aynı zamanda, spline enterpolasyonunun sırasını belirten bir tam sayıyı kabul edebileceğini unutmayın. Bu çok var:


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

doğrusal ve slinear hep http://gist.github.com/stringfellow/8ae4d3f25ca525e75bb79c01fbda4a24 –

+0

@StevePike bkz bazı patolojik durumlarda aynı sonucu vermezse ilginç, ama bu Pandalar için özel bir sorun olabilir, scipy değil. Diğer bir deyişle, verilerinizi yukarıdaki koduma (Pandalar olmadan) uyarladığımda, "interpolate.interp1d", "kind =" linear "veya" kind = "slinear" olduğunda hala aynı sonuçları veriyor gibi görünüyor. – unutbu

+0

aha .. iyi yakalama! Pandaların geçtiğini sanıyordum ... aptal! Oldukça kafa karıştırıcı .. –

0

'yakın' bağımsız değişkeni X, en yakın veri noktası verir, veya interpolates function y=f(x) at the point x using the data point nearest to x

'sıfır' tahmin ediyorum argüman kesme eşdeğerdir ve bu nedenle veri noktası sıfır

İlgili konular