回答问题

SciPy 文档解释说interp1dkind参数可以取值‘linear’‘nearest’‘zero’‘slinear’‘quadratic’‘cubic’。最后三个是样条命令,'linear'是不言自明的。'nearest''zero'有什么作用?

Answers

  • 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()

在此处输入图像描述

Logo

学AI,认准AI Studio!GPU算力,限时免费领,邀请好友解锁更多惊喜福利 >>>

更多推荐