Coursera Learner working on a presentation with Coursera logo and
Coursera Learner working on a presentation with Coursera logo and

numpy.where(condition[, x, y])

Renvoyer des éléments choisis parmi x ou y selon l’état.

Note

Au moment où la condition juste est donnée, cette capacité est une abréviation pour np.asarray(condition).nonzero(). L’utilisation de non-nul devrait être appréciée, car elle est efficace pour les sous-classes. Le reste de cette documentation ne couvre que la situation où chacune des trois affirmations est donnée.

Paramètres :

condition : array_like, bool

Si vrai, donnez x, sinon donnez y.

x, y : array_like

Les valeurs à choisir. x, y et la condition doivent pouvoir être diffusées sous une forme ou une autre.

Retours :

out : ndarray

Un tableau avec des éléments de x où la condition est vraie, et des éléments de y ailleurs.

Notes

Si tous les tableaux sont 1-D, est équivalent à :

[xv si c sinon yv

 pour c, xv, yv dans zip(condition, x, y)]

Exemples

>>> 

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

Cela peut également être utilisé sur des tableaux multidimensionnels :

>>> 

>>> np.where([[Vrai, Faux], [Vrai, Vrai]),

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

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

array([[1, 8],

       [3, 4]])

Les formes de x, y et l’état sont diffusés ensemble :

>>> 

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

>>> np.where(x < y, x, 10 + y) # les deux x et 10+y sont diffusés

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

       [10, 11,  1, 1],

       [10, 11, 12,  2]])

>>> 

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

…               [0, 2, 4],

…               [0, 3, 6]])

>>> np.where(a < 4, a, -1) # -1 is broadcast

array([[0, 1, 2],

       [ 0,  2, -1],

       [ 0,  3, -1]])