用条件减去2个Numpy数组

时间:2018-01-20 08:57:31

标签: python arrays numpy subtraction

我有两个看起来像这样的Numpy数组:

a = [[ [1,2,3], [4,5,6] ], 
    [  [7,8,9], [10,11,12] ]]

b = [[ [1,1,1], [0,0,0] ], 
     [ [3,3,3], [4,4,4] ]]

我希望以c = a - b

的条件执行c = 255 if b>0 else a

所以c应该是这样的:

c = [[ [255,255,255], [4,5,6] ], 
     [ [255,255,255], [255,255,255] ]]

如何在没有任何循环的情况下高效地完成任务?

1 个答案:

答案 0 :(得分:1)

使用np.where

>>> c = np.where(np.array(b)>0, 255, a)
>>> c
array([[[255, 255, 255],
        [  4,   5,   6]],

       [[255, 255, 255],
        [255, 255, 255]]])

顺便说一下。这里没有减少乐趣;也许会改变你问题的标题。