【发布时间】:2015-09-19 04:59:58
【问题描述】:
我有一个 2D numpy 数组,其中包含一组由 loadtxt 从文件导入的数据。第一列包含 x 数组,任何其他列包含不同参数的 y 值。我想拟合数据并将拟合参数组合到一个新的二维数组中。这里第一组数据的拟合结果应该作为初始参数来拟合下一组数据。因此,我使用 for 循环来扫描数组的列。
fitparam=zeros((0,3),float)
init_vals=[a,b,c]
for ii in arange(1,data.shape[1]):
popt,pcov=curve_fit(func,data[:,0],data[:,ii],p0=init_vals)
init_vals=popt
fitparam=concatenate((fitparam,resize(popt,(1,3))),axis=0)
有没有更合适的方法来做到这一点,例如使用嵌套列表?因此,我可以避免创建数组 fitparam 和 concatenate 命令。 比如:
init_vals=[a,b,c]
fitparam=array([
popt,pcov=curve_fit(func,data[:,0],data[:,ii],p0=init_vals)
init_vals=popt
array([popt[0],pcov[0,0],popt[1],pcov[1,1],popt[2],pcov[2,2]])
for ii in arange(1,data.shape[1])
)]
谢谢
【问题讨论】:
标签: python arrays list numpy nested