天天看點

python bool 轉vc int_的Python:轉換布爾數組int數組

python bool 轉vc int_的Python:轉換布爾數組int數組

I use Scilab, and am new to Python. If I wanted to convert a boolean array say:

>>> x = np.array([4, 3, 2, 1])

>>> y = 2 >= x

>>> y

array([False, False, True, True], dtype=bool)

into an integer array, what do I do?

In Scilab I can just use the command

>>> bool2s(y)

0. 0. 1. 1.

or even just multiply it by 1:

>>> 1*y

0. 0. 1. 1.

Is there a simple command for this in python? Or would I have to use loops?

Thank you. If you know of any good reference material (websites, books, articles) for getting into Python for non-programmers / Scilab (or Matlab) users, feel free to share with me.

解決方案

Numpy arrays have an astype method. Just do y.astype(int).

Note that it might not even be necessary to do this, depending on what you're using the array for. Bool will be autopromoted to int in many cases, so you can, e.g., add it to int arrays without having to explicitly convert it:

>>> x

array([ True, False, True], dtype=bool)

>>> x + [1, 2, 3]

array([2, 2, 4])