Problema
Abbiamo un array contenente elementi booleani. L'obiettivo è determinare quanti di questi elementi nell'array sono veri.
Soluzione 1
L'approccio ingenuo creerebbe un contatore di somma e un ciclo che itera su ciascun elemento nell'array. Verifichiamo quindi se quell'elemento è vero e se sì, lo aggiungiamo al contatore.
Dopo il completamento, otteniamo il valore della variabile di somma, il numero di elementi veri nell'array.
Soluzione 2
Possiamo affrontare in modo intelligente il problema poiché non stiamo guardando l'approccio ingenuo.
Sappiamo che Python tratta un falso valore come 0 e qualsiasi altro valore come vero. Quindi, se è così, possiamo usare la funzione numpy count_nonzero () per risolvere il problema.
La funzione Numpy Count_nonzero () ci consente di calcolare tutti i valori diversi da zero in un determinato array. Oppure, devo dire, ci consentirà di contare il numero di valori reali in un array.
La sintassi della funzione è come mostrata:
1 | numpy.count_nonzero (a, axis = nessuno, *, keepDims = false) |
Esempio 1
Considera l'esempio seguente che utilizza la funzione Count_nonzero () per determinare il numero di elementi diversi da zero nell'array.
ARR = [1,2,0,3,4,0,5,6,7]
Stampa ("diverso da zero", NP.count_nonzero (arr))
Il codice sopra dovrebbe determinare il numero dei valori diversi da zero e stampare il risultato come mostrato:
1 | diverso da zero 7 |
Esempio 2
Lo stesso caso si applica ai valori booleani come mostrato nell'array seguente:
1 2 | arr = [[true, false, true], [true, false, false]] Stampa ("diverso da zero", NP.count_nonzero (arr)) |
Il risultato di output è come mostrato:
1 | diverso da zero 3 |
E con ciò, abbiamo risolto il nostro problema iniziale.
Conclusione
Grazie per aver seguito insieme a questo tutorial in cui abbiamo coperto come utilizzare la funzione Count_nonzero () per determinare il numero di elementi veri in un array.
Codice felice!!