插值问题&使用scipy.interpolate.RectBivariateSpline进行评估

时间:2015-04-09 13:06:13

标签: python scipy interpolation

我有一个数组(15,8575),基本上是8575高斯叠加在一起(都略有不同)。我需要将其转换为一个数组(15,127181),用于与另一个数组进行卷积。经过一些搜索,我在这里发现了一个问题似乎与我的问题相似,并建议使用scipy.interpolate.RectBivariateSpline来插入数据,然后将函数计算为更大的数组。

这似乎适用于插值(至少我没有得到错误消息,但不知道函数是否正确),但我似乎无法让它来评估函数而不会产生错误。我确信我有一些明显的东西,但我看不到它。相关代码是:

apoLSF_wavelen = np.zeros(len(apoLSF[0]))
for i in range(len(apoLSF[0])):
    apoLSF_wavelen[i] = 10**(apoLSF_l_s + apoLSF_l_d * i)
y = np.arange(15)
f_LSF = interp.RectBivariateSpline(y, apoLSF_wavelen, apoLSF)
siu_LSF = f_LSF.ev(y, siu_wavelen)

我从最后一行得到的错误如下。我第一次认为我得到了错误的参数的顺序并且只是为了找到错误而交换了它们,但是交换了数字。

(Pdb) siu_LSF = f_LSF.ev(y, siu_wavelen)
0-th dimension must be fixed to 15 but got 127181
*** error: failed in converting 7th argument `y' of dfitpack.bispeu to     C/Fortran array
(Pdb) siu_LSF = f_LSF.ev(siu_wavelen, y)
0-th dimension must be fixed to 127181 but got 15
*** error: failed in converting 7th argument `y' of dfitpack.bispeu to C/Fortran array

如果上面的代码不足以分析错误,我很抱歉,但我不想复制大量不必要的东西,或者如果有一个明显的解释我在这里或其他地方都忽略了。

问候。

0 个答案:

没有答案