Problema
Temos uma matriz contendo elementos booleanos. O objetivo é determinar quantos desses elementos na matriz são verdadeiros.
Solução 1
A abordagem ingênua criaria um contador de soma e um loop que itera sobre cada elemento na matriz. Verificamos então se esse elemento é verdadeiro e, se sim, adicionamos ao balcão.
Após a conclusão, obtemos o valor da variável da soma, o número de elementos verdadeiros na matriz.
Solução 2
Podemos abordar de forma inteligente o problema, pois não estamos olhando para a abordagem ingênua.
Sabemos que Python trata um valor falso como 0 e qualquer outro valor como verdadeiro. Portanto, se for esse o caso, podemos usar a função Numpy count_nonZero () para resolver o problema.
A função Numpy count_nonZero () nos permite calcular todos os valores diferentes de zero em uma determinada matriz. Ou, devo dizer, isso nos permitirá contar o número de valores verdadeiros em uma matriz.
A sintaxe da função é como mostrado:
1 | Numpy.count_nonZero (a, eixo = nenhum, *, keepDims = false) |
Exemplo 1
Considere o exemplo abaixo que usa a função count_nonZero () para determinar o número de elementos diferentes de zero na matriz.
arr = [1,2,0,3,4,0,5,6,7]
Imprimir (“diferente de zero”, NP.count_nonZero (arr))
O código acima deve determinar o número de valores diferentes de zero e imprimir o resultado como mostrado:
1 | diferente de zero 7 |
Exemplo 2
O mesmo caso se aplica aos valores booleanos, como mostrado na matriz abaixo:
1 2 | arr = [[verdadeiro, falso, verdadeiro], [verdadeiro, falso, falso]] print ("diferente de zero", np.count_nonZero (arr)) |
O resultado da saída é como mostrado:
1 | diferente de zero 3 |
E com isso, resolvemos nosso problema inicial.
Conclusão
Obrigado por acompanhar este tutorial, onde abordamos como usar a função count_nonZero () para determinar o número de elementos verdadeiros em uma matriz.
Codificação feliz!!