python加速循环嵌套的方法_如何加速Python中的嵌套循环

我试图在算法中编写一段嵌套循环,但由于这些嵌套循环,整个算法耗时太长。我对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数组,需要半个多小时,甚至更长时间。只是想知道有人知道怎么处理吗?总的来说,我应该把我的努力放在哪一部分将是非常有帮助的!在

非常感谢!在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值