我是麻木的新手,但我很兴奋。我试着对nxn矩阵(20964x20964)的每一行运行一个最小二乘算法。在每一行,我必须更新“model_array”,使该行乘以一个外部预测器。在
(为了它的价值,我也测试过sklearn.linear_模型.线性回归,statsmodels.OLS,以及scipy.linalg.lstsq公司,但numpy实现速度最快。)
所以我基本上希望运行“ppi”20964次,每次迭代包括20964次最小二乘拟合。”ppi“在对象模式下工作得很好(使用“@jit”),但每次迭代需要2.2秒。鉴于“dim_vox”=20964,我希望提高速度。下面是我希望在每行运行的内部循环:
@jit
def fit_ex(modarr, yseries):
return np.linalg.lstsq(modarr, yseries)[0][2]
@njit
def ppi(timeseries, nvox, modarr, a):
for j in range(nvox):
yt = timeseries[j, :]
a[j] = fit_ex(modarr, yt)
ts = np.loadtxt(ts_name)
dim_vox, dim_ts = ts.shape
a = np.zeros(dim_vox, dtype=np.float64)
“model_array”是一个n x m numpy数组。 然后运行这个
^{pr2}$给出以下错误:
TypingError: Failed at nopython (nopython frontend)
Internal error at <numba.typeinfer.CallConstrain object at 0x117f65290>:
File "<ipython-input-407-de1b4104525d>", line 6
我使用的是numba0.18.2,python2.7.9。如果我掩饰了一些显而易见的事情,我很抱歉。在
目前没有回答
相关问题 更多 >
编程相关推荐