@xshangtiao (syu kami)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

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 col
deriv:

error: Result from function call is not a proper array of floats.

0 likes

2Answer

X = data1.loc[:,['Ekkusu']] #x
y = data1.loc[:,['Wai']] #x

X = data1.loc[:,'Ekkusu'] #o
y = data1.loc[:,'Wai'] #o
2Like

Your answer might help someone💌