scipy.interpolate.interp1d 中 kind 参数的不同值是什么意思?
回答问题 SciPy 文档解释说interp1d的kind参数可以取值‘linear’、‘nearest’、‘zero’、‘slinear’、‘quadratic’、‘cubic’。最后三个是样条命令,'linear'是不言自明的。'nearest'和'zero'有什么作用? Answers nearest“捕捉”到最近的数据点。 zero是零阶样条。它在任何时候的值都是最后看到的原始值。 lin
·
回答问题
SciPy 文档解释说interp1d
的kind
参数可以取值‘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()
更多推荐
已为社区贡献126473条内容
所有评论(0)