ValueError:对象未使用曲线拟合和矩阵模型对齐

2024-09-29 23:19:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图拟合一个转移概率矩阵(生态学中的莱斯利模型)的参数。我对莱斯利模型的作用是:

def leslie(x, f3, p0, p1, p2):
    Alist = [[0, 0, 0, f3], [p0, 0, 0, 0], [0, p1, 0, 0], [0, 0, p2, 0]]
    A = np.array(Alist)
    X = np.array(x).T
    return list(np.dot(A, X))

我试图用scipycurve_fit来处理x和y值的数据,其中每个值是4个度量值的列表(x是第1年,y是第2年的数据)。前几行数据如下所示:

                             ABUNDY1                            ABUNDY2
0  [516.819166236, 10.0, 15.0, 40.0]     [3756.96048518, 2.0, 1.0, 1.0]
1  [16454.2226677, 25.0, 60.0, 50.0]  [23511.7855689, 50.0, 35.0, 12.0]
2     [14415.487266, 20.0, 8.0, 2.0]    [248.215580071, 30.0, 2.0, 3.0]
3     [2477.19325817, 5.0, 5.0, 2.0]    [321.324366027, 10.0, 7.0, 4.0]
4  [43.2506601374, 15.0, 20.0, 10.0]   [1651.83654693, 15.0, 10.0, 4.0]

我打电话给:

res = scipy.optimize.curve_fit(leslie, data.ABUNDY1, data.ABUNDY2)

我得到ValueError: objects not aligned。我编写的leslie函数在曲线拟合之外尝试时似乎可以正常工作。我假设我的问题是数组维度没有正确匹配,但是我很难看到错误。你知道吗


Tags: 数据模型npscipyarrayfitcurvep2

热门问题