У меня есть 4D массив измерений [6,89,384,384]
, соответствующий [v,z,y,x]
.Теперь я хочу выполнить линейную регрессию в v для каждого [z,y,x]
, то есть linear-reg([:,z,y,x])
, и сохранить наклон в новом массиве.Какой самый быстрый способ сделать это?
Я пробовал 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]
Может ли это быть сделано более умным способом?