本文介绍了减去2带有条件的Numpy数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have two Numpy arrays which look like this:

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 if b>0 else a

所以c应该是这样的:

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

如何有效地做到这一点而没有任何循环?

How to do it efficiently without any loop?

推荐答案

使用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]]])

顺便说一句.这里没有减去快感;也许更改您的问题的标题.

Btw. there is no subtracting happpening here; maybe change the title of your question.

这篇关于减去2带有条件的Numpy数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-05 05:16