我试图获得最适合我的脚本生成的某些数据的行。这是我有: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