如何解决scipy.interpolate.UnivariateSpline 使用零权重和 nan 处理
此类的 scipy documentation 中的nan
处理建议使用权重,以便在计算插值时不考虑 nan
值。但是这个例子如果修改,当没有应用平滑时,对于低于下一个未屏蔽的 x 值的 x 值返回 nan
。
from scipy.interpolate import UnivariateSpline
x,y = np.array([1,2,3,4]),np.array([1,np.nan,4])
w = np.isnan(y)
y[w] = 0.
spl = UnivariateSpline(x,y,w=~w,s =0,k=1)
print(spl(1))
print(spl(2))
print(spl(2.5))
print(spl(3))
这次退货
nan
nan
nan
3.0
我不明白这种行为,我不明白为什么会发生这种情况。我错过了什么? scipy.interpolate.InterpolatedUnivariateSpline
类也是如此。
如果我只索引非 nan
值并将它们传递给类,结果就是我所期望的。
from scipy.interpolate import UnivariateSpline
x,4])
w = np.isnan(y)
y[w] = 0.
spl = UnivariateSpline(x[~w],y[~w],k=1)
print(spl(1))
print(spl(2))
print(spl(2.5))
print(spl(3))
印刷品
1.0
2.0
2.5
3.0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。