我有以下问题。下面的代码成功地线性拟合了50到400个样本的数据(我从来没有超过400个样本,前50个样本的质量非常糟糕)。在第三维中,我的值为7,而第四维的值最多为10000,因此这个循环“解决方案”将花费大量时间。如何不使用for循环并减少运行时?感谢您的帮助(我对Python非常陌生)
from sklearn.linear_model import TheilSenRegressor
import numpy as np
#ransac = linear_model.RANSACRegressor()
skip_v=50#number of values to be skipped
N=400
test_n=np.reshape(range(skip_v, N),(-1,1))
f_n=7
d4=np.shape(data)
a6=np.ones((f_n,d4[3]))
b6=np.ones((f_n,d4[3]))
for j in np.arange(d4[3]):
for i in np.arange(f_n):
theil = TheilSenRegressor(random_state=0).fit(test_n,np.log(data[skip_v:,3,i,j]))
a6[i,j]=theil.coef_
b6[i,j]=theil.intercept_
您可以使用多处理来并行处理循环。以下代码不起作用。它只是演示了如何做到这一点。只有当你的数字真的很大时,它才有用。否则,按顺序执行会更快
相关问题 更多 >
编程相关推荐