减少python中的循环

use*_*980 3 python arrays loops numpy

我想使用inntermost for循环(迭代3次的循环)来实现以下代码段,因为这会占用大量时间.

for i in arange(r):
    for j in arange(c):    
        for k in arange(3):
            if m[i,j]==n[i,j,k]:
                 new[i,j]=old[i,j,k]
Run Code Online (Sandbox Code Playgroud)

有谁能建议更好的方法?

seg*_*sai 5

for k in range(3):
    ind = m == n[:,:,k]
    new[ind] = old[:,:,k][ind]
Run Code Online (Sandbox Code Playgroud)