Is it conceptually correct to sum a vector of booleans? From a mathematical point of view, I would argue it's not: True + True != 2
. But it's quite practical to do so still! Example using the vectorised Python
library numpy
:
In [1]: X = rand(10)
In [2]: large = X>0.6
In [3]: large.dtype
Out[3]: dtype('bool')
In [4]: large.sum()
Out[4]: 7
I don't like it, but it's very practical. Is this a good practice?
Update: the aim is to count the number of true values in a vector.\
Update 2013-02-18: I just discovered the numpy function count_nonzero
does exactly what I need in a proper way. That means that as far as Python
is concerned, there is no need to use the "dirty" way.