gpt4 book ai didi

python - 拟合 3D 点 python

转载 作者:太空狗 更新时间:2023-10-30 00:41:17 29 4
gpt4 key购买 nike

我有 python 代码可以生成数字 x、y 和 z 的三元组列表。我想使用 scipy curve_fit 来拟合 z= f(x,y)。这是一些无效的代码

A = [(19,20,24), (10,40,28), (10,50,31)]

def func(x,y,a, b):
return x*y*a + b

如何让 python 将此函数与列表 A 中的数据匹配?

最佳答案

  • func 的第一个参数必须是数据(x 和 y)。
  • func 的其余参数表示参数。

所以你需要稍微修改一下你的func:

def func(data, a, b):
return data[:,0]*data[:,1]*a + b

  • curve_fit 的第一个参数是函数。
  • 第二个参数是独立的数据(xy在一个数组的形式)。
  • 第三个参数是依赖数据(z)。
  • 第四个参数是对参数值的猜测(ab 在这种情况下。)

所以,例如:

params, pcov = optimize.curve_fit(func, A[:,:2], A[:,2], guess)

import scipy.optimize as optimize
import numpy as np

A = np.array([(19,20,24), (10,40,28), (10,50,31)])

def func(data, a, b):
return data[:,0]*data[:,1]*a + b

guess = (1,1)
params, pcov = optimize.curve_fit(func, A[:,:2], A[:,2], guess)
print(params)
# [ 0.04919355 6.67741935]

关于python - 拟合 3D 点 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15413217/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com