func
의 첫 번째 인수는 데이터 (x 및 y) 여야합니다.
func
에 대한 나머지 인수는 매개 변수를 나타냅니다.
그래서 당신은 당신의 func
조금 수정해야합니다 curve_fit
에
def func(data, a, b):
return data[:,0]*data[:,1]*a + b
- 첫 번째 인수는 기능입니다.
- 두 번째 인수는
data
( 형식의 배열 중 하나 인 x
및 y
)입니다.
- 세 번째 인수는 종속 데이터 (
z
)입니다.
- 네 번째 인수는 매개 변수의 값에 대한 추측
그래서, (예를 들어,이 경우 a
및 b
.)
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]
이 용액 x와 y가 같은 차원으로 특징 지워지는 경우에만 작동합니다. 다른 모양의 x, y에 대해이 코드를 일반화하는 방법은 무엇입니까? – TommasoF