Python 如何使用numpy优化三维阵列计算?

Python 如何使用numpy优化三维阵列计算?,python,numpy,optimization,Python,Numpy,Optimization,我对3d阵列数据有一个回归问题。阵列的大小是(350,350,50),我需要对每个像素进行回归处理;例如,对每个(1,1,50)数组进行回归,然后重复350 x 350次 我用Numpy编写代码,它在每个过程中运行 行、列、深度=image\u sequence.shape 对于范围(0,第行)中的i: 对于范围(0,列)内的j: Ytrain=图像_序列[i,j:] 新的_堆栈[i,j:]=回归_过程(Ytrain) “行”是350 “col”是350 根据我的推断,每个序列的计算时间需要5

我对3d阵列数据有一个回归问题。阵列的大小是(350,350,50),我需要对每个像素进行回归处理;例如,对每个(1,1,50)数组进行回归,然后重复350 x 350次

我用Numpy编写代码,它在每个过程中运行

行、列、深度=image\u sequence.shape
对于范围(0,第行)中的i:
对于范围(0,列)内的j:
Ytrain=图像_序列[i,j:]
新的_堆栈[i,j:]=回归_过程(Ytrain)
“行”是350
“col”是350

根据我的推断,每个序列的计算时间需要5秒。 这意味着,由于它应该被计算为350x350序列,它将在大约7天后完成

我想知道如何优化这个过程并提前完成它


我认为这与一些并行处理有关,但我不习惯。

最基本的方法是对回归过程进行编码,使其以(n,50)的数组作为输入,n是任意数。我举一个简单的例子,只计算平均值

def回归_过程(图像):
长度=图像。形状[1]
新堆栈=np.sum(图像,轴=1)
返回新的\u堆栈/长度

new_stack=回归过程(图像序列。重塑(行*列,深度))
新堆栈。重塑(行、列、深度)

假设
回归\u过程
确实是一个5s每次呼叫的瓶颈,没有改进的希望,那么并行处理就是这样。在这种情况下,是重复的,但可以说没有给出一个直接的答案。如果你的函数
回归过程
需要5秒,你需要调用它350x350次,那么你需要的是优化这个特定的函数。