Что означают различные значения аргумента kind в scipy.интерполировать.interp1d?

на документация SciPy поясняет, что interp1d ' s и 'zero' делать?

2 ответов


  • nearest "привязки" к ближайшей точке данных.
  • zero нулевой сплайн порядка. Это значение в любой момент является последним сырым значением.
  • linear выполняет линейную интерполяцию и slinear использует первый заказать сплайн. Они используют другой код и может производить аналогичные, но тонко различные результаты.
  • quadratic использует интерполяцию сплайнов второго порядка.
  • cubic использует сплайн третьего порядка интерполяция.

отметим, что k параметр также может принимать целое число, указывающее порядок интерполяции сплайнов.


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


'nearest' возвращает точку данных из X, ближайшую к аргументу, или interpolates function y=f(x) at the point x using the data point nearest to x

'zero' я бы предположил, эквивалентно усечению аргумента и, таким образом, используя точку данных, ближайшую к нулю