减去 2 个带条件的 Numpy 数组
Subtract 2 Numpy arrays with condition
我有两个 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] ]]
如何在没有任何循环的情况下高效地做到这一点?
使用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]]])
顺便说一句。这里没有减法;也许更改您的问题的标题。
我有两个 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] ]]
如何在没有任何循环的情况下高效地做到这一点?
使用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]]])
顺便说一句。这里没有减法;也许更改您的问题的标题。