2012-09-06 27 views
0

我已經在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

回答

5

x是一個列表,並在func將「乘以二」(即它的元素的數量增加了一倍)。

如果要通過兩相乘(即乘以每個元素),將其轉換爲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)) 
相關問題