我试图在算法中编写一段嵌套循环,但由于这些嵌套循环,整个算法耗时太长。我对Python相当陌生(从下面的非专业代码中您可能会发现:()),希望有人能指导我加快代码的速度!在
整个算法适用于多个1500*6400阵列的火灾探测。在遍历整个数组时,会应用一个小的上下文分析。上下文分析以动态分配窗口大小的方式进行。窗口大小可以从11*11到31*31,直到采样窗口内的验证值足以进行下一轮计算,例如如下所示:def ContextualWindows (arrb4,arrb5,pfire):
####arrb4,arrb5,pfire are 31*31 sampling windows from large 1500*6400 numpy array
i=5
while i in range (5,16):
arrb4back=arrb4[15-i:16+i,15-i:16+i]
## only output the array data when it is 'large' enough
## to have enough good quality data to do calculation
if np.ma.count(arrb4back)>=min(10,0.25*i*i):
arrb5back=arrb5[15-i:16+i,15-i:16+i]
pfireback=pfire[15-i:16+i,15-i:16+i]
canfire=0
i=20
else:
i=i+1
###unknown pixel: background condition could not be characterized
if i!=20:
canfire=1
arrb5back=arrb5
pfireback=pfire
arrb4back=arrb4
return (arrb4back,arrb5back,pfireback,canfire)
然后这个动态窗口将被输入下一轮测试,例如:
^{pr2}$
要将整个代码运行到我的多个1500*6400个numpy数组,需要半个多小时,甚至更长时间。只是想知道有人知道怎么处理吗?总的来说,我应该把我的努力放在哪一部分将是非常有帮助的!在
非常感谢!在