170 votes

Comment convertir un tableau de booléens en tableau d'int.

J'utilise Scilab, et je veux convertir un tableau de booléens en un tableau d'entiers :

>>> x = np.array([4, 3, 2, 1])
>>> y = 2 >= x
>>> y
array([False, False,  True,  True], dtype=bool)

Dans Scilab, je peux utiliser :

>>> bool2s(y)
0.    0.    1.    1.  

ou même simplement le multiplier par 1 :

>>> 1*y
0.    0.    1.    1.  

Existe-t-il une commande simple pour cela en Python, ou dois-je utiliser une boucle ?

3voto

bsoist Points 745

Je sais que vous avez demandé des solutions qui ne bouclent pas, mais les seules solutions qui me viennent à l'esprit bouclent probablement en interne de toute façon :

map(int,y)

ou :

[i*1 for i in y]

ou :

import numpy
y=numpy.array(y)
y*1

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X