numpy.where(condição[, x, y])

Elementos de retorno escolhidos entre x ou y, dependendo da condição.

Nota

No ponto em que apenas a condição é dada, esta capacidade é uma abreviatura para np.asarray(condição).nonzero(). A utilização de nonzero deve ser apreciada, uma vez que continua de forma eficaz para subclasses. O restante desta documentação cobre apenas a situação em que cada uma das três contenções é dada.

Parâmetros:

condição : array_like, bool

Onde Verdadeiro, render x, senão render y.

x, y : tipo array_like

Valores a partir dos quais se pode escolher. x, y e condição precisam ser transmitidos com alguma forma.

Devolve:

out : ndarray

Uma matriz com elementos de x onde a condição é verdadeira, e elementos de y em outro lugar.

Notas

Se todas as arrays são 1-D, onde é equivalente a:

[xv se c mais yv

 para c, xv, yv em zip(condição, x, y)]

Exemplos

>>> 

>>> a = np.arange(10)

>>> a

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> np.where(a < 5, a, 10*a)

array([ 0, 1, 2, 3, 4, 50, 60, 70, 80, 90])

Isto também pode ser usado em matrizes multidimensionais:

>>> 

>>> np.where([[Verdadeiro, Falso], [Verdadeiro, Verdadeiro]],

…          [[1, 2], [3, 4]],

…          [[9, 8], [7, 6]])

array([[1, 8],

       [3, 4]])

As formas de x, y, e a condição são transmitidas em conjunto:

>>> 

>>> x, y = np.ogrid[:3, :4]

>>> np.onde(x < y, x, 10 + y) # ambos x e 10+y são transmitidos

array([[10, 0, 0, 0, 0],

       [10, 11,  1, 1],

       [10, 11, 12,  2]])

>>> 

>>> a = np.array([[0, 1, 2],

…               [0, 2, 4],

…               [0, 3, 6]])

>>> np.onde(a < 4, a, -1) # -1 é transmitido

array([[ 0, 1, 2],

       [ 0,  2, -1],

       [ 0,  3, -1]])