为什么scipy.interpolate.interp1d()告诉我我的新值超出范围?

2024-06-07 10:05:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Python中插入数据,但它不起作用。在

具体问题如下:我有一个恒星样本的BminV颜色数据(大约70颗)。我也通过插值为理论黑体发射器生成了这些值。在

#BminV is the data from the stars.
temperatures = np.arange(1000.0, 80000.0, 50.0)
#I generate for each of these temperatures a BminV colour. these are stored in BminVblack.
f = interpolate.interp1d(BminVblack, temperatures, kind='cubic')
print f(BminV)

对于BminV的每个值,都会返回一个错误,说明它超出了插值范围。我想我应该检查一下这些范围

^{pr2}$

结果表明,BminVblack的范围是-.38到3.2,BminV的范围是-.36到1.8。为什么它仍然说BminV的某些值超出了插值范围?在


Tags: the数据fromdatais颜色发射器理论
1条回答
网友
1楼 · 发布于 2024-06-07 10:05:27

检查BminVblack是否为单调递增数组。在

如果np.all(np.diff(BminVblack)>0)求值为True,则它是单调递增的。在

如果它不是单调递增的,则会产生“超出范围”的误差。如果输入数组是单调递减的,也会发生同样的情况,就像您的情况一样。在

相关问题 更多 >

    热门问题