我在python中创建了一个简单的函数:
def func(a,x):
return a+x*2
然后我称之为
x = [log(1),log(2),log(4),log(5),log(8)]
#Import y data from a file
free= curve_fit(func,np.array(x),np.array(y))[0][0]
yline = func(free,x)
结果yline
是x
的两倍,并且每个元素都在那里两次。
为什么会这样?
注意: 我正在导入numpy但不是scipy或curve_fit
答案 0 :(得分:5)
x
是一个列表,在func
中,它将“乘以2”(即其元素的数量加倍)。
如果你想将它乘以2(即乘以每个元素),首先将其转换为np.array
:
x = [log(1),log(2),log(4),log(5),log(8)]
#Import y data from a file
free= curve_fit(func,np.array(x),np.array(y))[0][0]
yline = func(free, np.array(x))