I am trying to rewrite a matlab code in python27. There is a matlab line as follows:
vector_C = vector_A > vector_B;
If I try to write this
Even though vector_C
may have dtype=bool
, you can still do operations such as the following:
In [1]: vector_A = scipy.randn(4)
In [2]: vector_B = scipy.zeros(4)
In [3]: vector_A
Out[3]: array([ 0.12515902, -0.53244222, -0.67717936, -0.74164708])
In [4]: vector_B
Out[4]: array([ 0., 0., 0., 0.])
In [5]: vector_C = vector_A > vector_B
In [6]: vector_C
Out[6]: array([ True, False, False, False], dtype=bool)
In [7]: vector_C.sum()
Out[7]: 1
In [8]: vector_C.mean()
Out[8]: 0.25
In [9]: 3 - vector_C
Out[9]: array([2, 3, 3, 3])
So, in short, you probably don't have to do anything extra.
But if you must do a conversion, you may use astype
:
In [10]: vector_C.astype(int)
Out[10]: array([1, 0, 0, 0])
In [11]: vector_C.astype(float)
Out[11]: array([ 1., 0., 0., 0.])