Python 用条件减去2个Numpy数组
我有两个Numpy阵列,如下所示:Python 用条件减去2个Numpy数组,python,arrays,numpy,subtraction,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 = [[ [255,255,255], [4,5,6] ], [ [255,255,255], [255,255,255] ]] 我想执行c=a-b,条件是c=255,如果b>0,否则a 所以c应该是这样的: a =
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 = [[ [255,255,255], [4,5,6] ],
[ [255,255,255], [255,255,255] ]]
我想执行c=a-b
,条件是c=255,如果b>0,否则a
所以c应该是这样的:
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 = [[ [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]]])
顺便说一句,这里没有减法;也许可以改变你问题的标题