【发布时间】:2014-03-18 00:24:54
【问题描述】:
我正在尝试在 Python 中插入数据,但它不起作用。
具体问题如下:我有一个星星样本(大约 70 个)的 BminV 颜色数据。我也通过插值为理论上的黑体发射器生成了这些值。
#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的某些值超出了插值范围?
【问题讨论】:
-
显示堆栈跟踪。
-
你能检查
BminVblack是一个单调递增的数组吗?如果np.all(np.diff(BminVblack)>0)评估为True,则它是单调递增的。如果它不是单调递增的,则会引发“超出范围”错误。 -
@flebool 我将 BminVblack 和温度更改为另一种方式([::-1]),现在它可以正常工作了。结果也很合理。非常感谢!
标签: python scipy interpolation