Nel mio codice (Python + numpy o Matlab, ma il problema può riguardare qualsiasi linguaggio di programmazione di array), spesso devo contare il numero di elementi in un array in cui gli elementi sono veri. Solitamente, lo implemento come sum(x>0.5)
, ma ciò può essere considerato improprio. Vedi È corretto aggiungere booleani per contare il numero di valori veri in un vettore? . Numpy ha count_nonzero
, ma se non c'è uno speciale -purpose function, quale sarebbe il modo corretto di scrivere questo?
Ad esempio, in Matlab
, posso scrivere sum(x>.5)
o length(find(x>0.5))
. Il primo è leggermente più veloce ma può essere considerato improprio (vedi sopra). Esistono altre alternative per il conteggio del numero di valori veri in un array e quali dovrebbero essere i miei criteri per selezionarne uno?
(In un linguaggio di basso livello, si scriverebbe un ciclo for esplicito, ma questo è un modo estremamente inefficiente per implementarlo in un linguaggio di programmazione di array di alto livello)