我試圖獲得最適合我的腳本生成的某些數據的行。這是我有:ValueError:使用optimize.curve時,操作數無法與形狀(0)(26)一起廣播
import numpy as np
import scipy as sp
.
.
.
def func(x, a, b, c):
return a*np.exp(-b*x) + c
popt, pcov = sp.optimize.curve_fit(func, numgelt, turnsG)
我不斷收到此錯誤:
ValueError: operands could not be broadcast together with shapes (0) (26)
我已經檢查過這兩個陣列(numgelt和turnsG)是絕對相同的尺寸。我也確保了這些條目是浮動的。謝謝!
猜想爲什麼這可能是正確的答案:我相信可能會有一些內部增加之間的迭代,在列表的情況下,被視爲串聯,而不是逐個元素的添加。根據錯誤信息,我不認爲這個錯誤是立即發現的,但這是列表和數組之間的明顯區別。 – EvenAdam 2015-06-10 15:14:12
我的天啊,我不能相信這樣一個簡單的修復會導致這樣一個晦澀的錯誤!感謝發佈! – Demis 2015-10-07 17:30:13
我對'numpy.leastsq()'有同樣的問題,並且將我的x/y列表參數和初始參數包裝在'np.array()'中解決了這個問題。也許它將初始參數乘以x/y數組,所以如果其中一個是列表(其維數爲'0'),而另一個是數組,則會得到這個維度 - 不匹配錯誤。如果numpy剛剛說「這不是一個數組,尺寸= 0!」,它已經很好了!或者其他的東西! – Demis 2015-10-07 18:07:27