我正在尝试用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的每个值,这将返回一个错误,表示它超出了插值范围。我以为我会检查这些范围
print np.min(BminVblack), np.max(BminVblack)
print np.min(BminV), np.max(BminV)
这样可以使BminVblack范围为-.38到3.2,BminV范围为-.36到1.8。为什么它仍然说BminV的某些值超出了插值的范围?
答案 0 :(得分:0)
检查BminVblack
是否是一个单调递增的数组。
如果np.all(np.diff(BminVblack)>0)
评估为True
,则单调递增。
如果不是单调增加,则可能会出现“超出范围”错误。如果输入数组单调递减,则会发生同样的情况。