我有一个尺寸为[6,89,384,384]
的4D数组,对应于[v,z,y,x]
。现在,我希望在每个[z,y,x]
(即linear-reg([:,z,y,x])
)的v中执行线性回归,并将斜率保存到新数组中。最快的方法是什么?
我已经尝试过scipy.stats.linregress
和np.polyfit
。两者都需要大约3分钟。去完成。
下面是我当前的实现。
x_linfit = np.linspace(0,10,6)
for z in range(z_dim):
for y in range(y_dim):
for x in range(x_dim):
data = data_frames[:,z,y,x]
tmp_linfit = np.polyfit(x_linfit,data, deg=1)
data_fit[z,x,y] = tmp_linfit[0]
这可以更聪明的方式完成吗?