You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否可以为scipy.interpolate.interp1d配置超范围取最近边界的填充规则?

你可以通过配置interp1d的内置参数直接实现需求,无需额外对数据做预处理,性能符合大数据量场景要求。

解决方案代码

from scipy.interpolate import interp1d
# 关闭边界异常报错,超出区间范围时分别取左右边界对应的y值
intertest = interp1d([500, 1000], [-1, 1], bounds_error=False, fill_value=(-1, 1))
mylist = [400, 500, 1000, 1100]
list2 = intertest(mylist)
print(list2)

运行后输出结果为:[-1. -1. 1. 1.],和预期结果完全一致。

通用写法优化

如果不想硬编码边界值,可以直接从插值的y数组中取值,适配任意插值区间:

x = [500, 1000]
y = [-1, 1]
intertest = interp1d(x, y, bounds_error=False, fill_value=(y[0], y[-1]))

高版本scipy简化写法

如果你的scipy版本≥1.10.0,可以直接使用fill_value="clip"参数,自动裁剪超出边界的值到最近的区间端点:

intertest = interp1d([500, 1000], [-1, 1], bounds_error=False, fill_value="clip")

内容的提问来源于stack exchange,提问作者NicoliHc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 03:21:01