gpt4 book ai didi

python - numpy : ValueError: object of too small depth for desired array

转载 作者:行者123 更新时间:2023-12-01 04:54:48 30 4
gpt4 key购买 nike

我正在尝试将 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 个元素的 float 组?

如果我的理解是正确的,我该如何纠正它?我尝试了在谷歌中找到的方法,但它不起作用。

最佳答案

当我在 Octave 中使用相同类型的数字时,我收到类似的错误:

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(注意变量的不同顺序):

In [364]: np.interp(2.33,[1,2,3,4,5],[3,3.5,2,2.5,1])
Out[364]: 3.005

阅读 help(np.interp) 以了解有关其输入的更多信息。

关于python - numpy : ValueError: object of too small depth for desired array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27685504/

30 4 0