带2D数组的curve_fit()

时间:2020-07-20 20:49:58

标签: python arrays numpy numpy-ndarray scipy-optimize

我想对我的(m x n)X和Y数组进行最小二乘拟合,如下所示。

def func(x,m,c):
  lsq=(m*x) + c
  return lsq 

xdata=[[1,2,3],[4,5,6],[7,8,9]]
ydata=[[10,20,30],[10,20,30],[10,20,30]]

coeff, var = curve_fit(func,xdata,ydata)

一种简单的解决方案是使用for循环

for i in range(len(xdata)):
  xdata_ = xdata[i]
  ydata_ = ydata[i]
  coeff, var = curve_fit(func,xdata_,ydata_)

但是使用for循环是一个非常缓慢的过程,因为在实际情况下,数组的大小为6000 x6000。我有十个大小为6000 x 6000的数组。从这十个数组中每个元素( 36000000),我需要进行最小二乘拟合。我的ydata已修复,如下所示。现在,xdata是十个数组中的每个元素。

xdata =  [[array1[0],array2[0],...array10[0]],[array1[1],array2[1],...array10[1]],...[array1[36000000],array2[36000000],...array10[36000000]]]
ydata =  [[1e6,2e6,...10e6],[1e6,2e6,...10e6],...[1e6,2e6,...10e6]]

有什么方法可以在没有循环的情况下将xdata和ydata加载到curve_fit函数中吗?谢谢。

0 个答案:

没有答案
相关问题