0
我想在Python中插入数据,但它只是不工作。为什么scipy.interpolate.interp1d()告诉我我的xnew值超出范围?
具体问题如下:我有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的每一个值,这都会返回一个错误,说明它超出了插值范围。我想我会检查这些范围
print np.min(BminVblack), np.max(BminVblack)
print np.min(BminV), np.max(BminV)
该工程以有BminVblack范围为-.38至3.2,并且BminV范围从-.36到1.8。为什么它仍然会说BminV的某些值超出插值范围?
显示堆栈跟踪。 – user2357112
你能检查一下'BminVblack'是一个单调递增的数组吗?如果np.all(np.diff(BminVblack)> 0)'评估为'True',则它是单调递增的。如果它不单调增加,则可能引发“超出范围”的错误。 – gg349
@flebool我改变了BminVblack和温度去其他方式([:: - 1]),现在它工作正常。结果也相当合理。非常感谢你! – user2229219