Python Numpy:ValueError:对于所需数组,对象深度太小

Python Numpy:ValueError:对于所需数组,对象深度太小,python,numpy,Python,Numpy,我正在尝试将一个MATLAB代码转换为Python,但我一直在思考如何将这一行导入Python: YDFA_xa_p = interp1(data(:,1),data(:,2),YDFA_lam_p*1e9,'linear')*1e-24; 现在,对于Python,我将其更改为: YDFA_xa_p = numpy.interp(data[:, 1], data[:, 2], YDFA_lam_p * 1e9) * 1e-24 data[:,1] and data[:,2] and YDFA

我正在尝试将一个MATLAB代码转换为Python,但我一直在思考如何将这一行导入Python:

YDFA_xa_p = interp1(data(:,1),data(:,2),YDFA_lam_p*1e9,'linear')*1e-24;
现在,对于Python,我将其更改为:

YDFA_xa_p = numpy.interp(data[:, 1], data[:, 2], YDFA_lam_p * 1e9) * 1e-24

data[:,1] and data[:,2] and YDFA_lam_p values are:

[ 2.  2.  2.  2.  2.  2.  2.  2.  2.  2.] [ 3.  3.  3.  3.  3.  3.  3.  3.  3.  3.] 915.0
我看到的问题是,变量YDFA_lam_p是一个浮点变量,而它需要一个由10个元素组成的浮点数组


如果我的理解是正确的,我怎样才能纠正它?我尝试了我在谷歌找到的方法,但它就是不起作用

当我在八度音阶中使用相同种类的数字时,我会得到一个类似的错误:

octave:32> interp1([2,2,2,2],[3,3,3,3],900)
warning: interp1: multiple discontinuities at the same X value
error: mkpp: at least one interval is needed
你们已经给了它一个点(重复),并要求它在左外场的远处插值

正确的示例用法是:

octave:32> interp1([1,2,3,4,5],[3,3.5,2,2.5,1],2.33,'linear')
ans =  3.0050
等效Python(注意变量的不同顺序):


阅读
帮助(np.interp)
了解更多关于其输入的信息。

您能发布一些示例数据吗?假设结果的长度与给定的插值范围相同。
In [364]: np.interp(2.33,[1,2,3,4,5],[3,3.5,2,2.5,1])
Out[364]: 3.005