我对3D阵列数据有回归问题。数组的大小为(350、350、50),我需要对每个像素进行回归处理;例如,对每个(1、1、50)数组进行回归,然后以350 x 350的重复次数进行重复。
我使用Numpy编写了代码,并且该代码正在每个过程中运行。
row, col, depth = image_sequence.shape
for i in range(0, row):
for j in range(0, col):
Ytrain = image_sequence[i, j, :]
new_stack[i,j,:] = regression_process(Ytrain)
'row'是350
“ col”是350
根据我的推断,每个序列的计算时间为5秒。 这意味着应将其计算为350x350序列,因此大约需要7天才能完成。
我想知道如何优化此过程并尽早完成。
我认为这与某些并行处理有关,但我不习惯。
答案 0 :(得分:0)
numpy的方式是对gression_process进行编码,以使其将(n,50)的数组作为输入,其中n为任意数字。我举一个简单的例子,只计算平均值。
def regression_process(image):
length = image.shape[1]
new_stack = np.sum(image, axis=1)
return new_stack / length
new_stack = regression_process(image_sequence.reshape(row*col, depth))
new_stack.reshape(row, col, depth)