小编wil*_*ilk的帖子

这是scipy.interpolate.interp1d中的错误吗?

当使用零阶插值时,我发现输入数组中的最后一个Y值不返回X数组中的最后一个值:

from scipy.interpolate import interp1d

xx = [0.0, 1.0, 2.0]
xi = interp1d(xx, xx, kind='zero')
print(xi(xx))
Run Code Online (Sandbox Code Playgroud)

似乎它应该返回[0.,1.,2.],但它返回[0.,1.,1.]。xx中的最后一个值被视为在插值范围内,但不作为最后一点的值返回。该文档未提供“零”的详细信息,但我希望它可以:

a)引发ValueError,因为输入值被认为是在半封闭范围[0.,1.)和[1.,2.)上定义值,从而使2.0不确定,或

b)返回2.0,因为范围是[0.,1。),[1。,2.)和[2.,2.)

interp1d函数似乎认为正确答案是:

c)返回1.0,因为最后一个范围是特殊情况,定义为闭合间隔[1.,2]。

有正确的选择吗?如果是这样,interp1d执行什么?

python scipy

5
推荐指数
1
解决办法
1574
查看次数

标签 统计

python ×1

scipy ×1