python フィッティング エラー 常微分方程式
pythonでフィッティングをしているのですが、
Result from function call is not a proper array of floats.
というエラーが出ます。解決策を教えてください。
code
data1 = pd.read_csv("sotuken1.csv")
X = data1.loc[:,['Ekkusu']]
y = data1.loc[:,['Wai']]
import numpy as np
X = np.array(X)
y = np.array(y)
plt.scatter(X, y)
def f(x, C, k): # y = f(x)
return C * np.exp(-k * x)
C, k = curve_fit(f, X, y)[0]
print(f"y = {C:.6}e^(-{k:.6}x)")
x = np.arange(0, 10, 0.01)
y = f(x, C, k)
plt.plot(x, y)
plt.show()
error
ValueError Traceback (most recent call last)
ValueError: object too deep for desired array
error Traceback (most recent call last)
in
15
16
---> 17 C, k = curve_fit(f, X, y)[0]
18 print(f"y = {C:.6}e^(-{k:.6}x)")
19
~/.pyenv/versions/3.6.5/lib/python3.6/site-packages/scipy/optimize/minpack.py in curve_fit(f, xdata, ydata, p0, sigma, absolute_sigma, check_finite, bounds, method, jac, *kwargs)
749 # Remove full_output from kwargs, otherwise we're passing it in twice.
750 return_full = kwargs.pop('full_output', False)
--> 751 res = leastsq(func, p0, Dfun=jac, full_output=1, *kwargs)
752 popt, pcov, infodict, errmsg, ier = res
753 cost = np.sum(infodict['fvec'] ** 2)
~/.pyenv/versions/3.6.5/lib/python3.6/site-packages/scipy/optimize/minpack.py in leastsq(func, x0, args, Dfun, full_output, col_deriv, ftol, xtol, gtol, maxfev, epsfcn, factor, diag)
392 with MINPACK_LOCK:
393 retval = _minpack._lmdif(func, x0, args, full_output, ftol, xtol,
--> 394 gtol, maxfev, epsfcn, factor, diag)
395 else:
396 if colderiv:
error: Result from function call is not a proper array of floats.