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

scipy.interpolate.interp1d外插结果错误,如何让超出范围时报错

问题原因

你代码中设置了fill_value='extrapolate'参数,该配置会强制interp1d对超出样本x轴(即frc列)取值范围的输入执行外插计算,因此不会触发边界校验报错,反而返回不符合预期的外插结果。
你提供的frc列取值范围为-16051.253 ~ 17298.647,输入的-17000超出了左边界,因此得到了异常的外插结果。

解决方法

直接移除fill_value='extrapolate'参数,使用interp1d的默认配置即可:interp1d默认开启bounds_error=True,只要输入值超出x轴的取值范围,就会直接抛出ValueError,完全符合你的需求。

修改后代码
import pandas as pd
from scipy.interpolate import interp1d

df = pd.read_csv('111.txt', sep='\t')
print(df)
# 移除extrapolate参数,使用默认边界校验规则
interpi = interp1d(df['frc'], df['ang'])
print(interpi(-17000))
异常输出示例

当输入值超出frc的取值范围时,程序会直接抛出如下错误:

ValueError: A value in x_new is below the interpolation range.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:48:02