numpy,如何变得更优雅?

时间:2019-05-09 21:22:38

标签: python numpy

使用numpy编写此方法的更好/更短的方法是什么? 两种img的形状和类型都相同。 没用太多

def cut_whole(img_to_cut, img_to_use):
    #we assume unit8 dtype
    assert img_to_cut.shape==img_to_use.shape

    #iterate all,assume shape is (:,:,4)
    (x,y,c)=img_to_cut.shape
    for i in range(x):
        for j in range(y):
            if(img_to_use[i,j,3]>0):
                img_to_cut[i,j,:]=0    
    return img_to_cut

1 个答案:

答案 0 :(得分:4)

这应该做

img_to_cut[img_to_use[:, :, 3:4] > 0] = 0

请注意,选择最后一个通道的方式是保留第三个长度为1的轴。从而使生成的布尔掩码可以广播到另一个数组。