Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用条件减去2个Numpy数组_Python_Arrays_Numpy_Subtraction - Fatal编程技术网

Python 用条件减去2个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 =

我有两个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 = [[ [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]]])
顺便说一句,这里没有减法;也许可以改变你问题的标题