È concettualmente corretto sommare un vettore di booleani? Da un punto di vista matematico, direi che non lo è: True + True != 2
. Ma è abbastanza pratico farlo ancora! Esempio utilizzando la libreria Python
vettorizzata 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
Non mi piace, ma è molto pratico. È una buona pratica?
Aggiornamento : l'obiettivo è contare il numero di valori veri in un vettore. \
Aggiornamento 2013-02-18 : ho appena scoperto la funzione numpy count_nonzero
fa esattamente ciò di cui ho bisogno in modo corretto. Ciò significa che, per quanto riguarda Python
, non è necessario utilizzare il modo "sporco".