Python 同时执行n个线性回归

Python 同时执行n个线性回归,python,pandas,linear-regression,Python,Pandas,Linear Regression,我有一个y-a 100行乘5列的数据帧 我有一个100行5列的数据帧 对于i=0,…,4,我想回归y[:,i]和x[:,i] 我知道如何使用循环 但是有没有一种方法可以对线性回归进行矢量化,这样我就不会有循环了?据我所知,没有任何方法可以将这一切同时放在优化的Fortran库LAPACK中,因为每个回归都是它自己独立的优化问题 请注意,4项上的循环与回归本身无关,您需要完全计算,因为每个回归都是一个孤立的线性代数问题。。。因此,我认为这里没有多少时间可以节省…如果您能够在单个数据帧中获取数据,那

我有一个y-a 100行乘5列的数据帧

我有一个100行5列的数据帧

对于i=0,…,4,我想回归y[:,i]和x[:,i]

我知道如何使用循环


但是有没有一种方法可以对线性回归进行矢量化,这样我就不会有循环了?

据我所知,没有任何方法可以将这一切同时放在优化的Fortran库LAPACK中,因为每个回归都是它自己独立的优化问题


请注意,4项上的循环与回归本身无关,您需要完全计算,因为每个回归都是一个孤立的线性代数问题。。。因此,我认为这里没有多少时间可以节省…

如果您能够在单个数据帧中获取数据,那么使用“应用”应该是可能的。 我现在无法测试它,但我想到了这样的事情: 使用多索引创建单个DF:

i row x y 
0 0 1.1 2.2 
... 
0 99 3.14 2.3 
1 0 2.2 3.3 
... 
1 99 4.5 3.5 
2 0 ... ...
然后可以按“i”列分组,并对子组应用任意函数

def linear_fit(sub_df):
    do_linear_fit(sub_df['x'], sub_df['y'])

df.groupby('i').apply(linear_fit)
我希望这有帮助,否则我可以提供更多的帮助


但请记住@Retozi已经提到的内容。这不会明显快于循环(它不是并行运行或“同时”运行),但阅读和pythonic/pandas方法当然会更好…

您可以使用一个进程池并行运行它,但是,设置流程和来回传输数据的开销是否值得,还有争议