Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

porque retorna isso?

depois de :

contador = np.arange(10)
contador

retorna : array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

depois

contador[contador > 5]

retorna

array([6, 7, 8, 9])

até ai tudo bem,

mas porque:

contador[[False, False, False, False, False, False,  True,  True,  True,
        True]]

também retorna

array([6, 7, 8, 9])

??

4 respostas

Olá, Roberval! Tudo bem com você?

Ambas são formas de seleções em um array.

Quando você utiliza a primeira seleção contador[contador > 5], por baixo dos panos você está utilizando a segunda seleção contador[[False, False, False, False, False, False, True, True, True, True]].

Você pode conferir isso executando separadamente o código

contador > 5

Saída:

array([False, False, False, False, False, False,  True,  True,  True,
        True])

Ao realizar a seleção com contador[[False, False, False, False, False, False, True, True, True, True]] estamos passando quais valores queremos através dos valores True no array, que é do 7 elemento em diante, que corresponde aos elementos 6, 7, 8, 9.

Então ambas as formas podem ser utilizadas sem problemas.

Espero ter ajudado, mas se ainda persistir alguma dúvida estou sempre à disposição.

:)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

na verdade ainda ficou a duvida.

como é que pode o contador[[False, False, False, False, False, False, True, True, True, True]] que tem 10 dados booleanos, retornar um array com só 4 elementos?

solução!

Olá, Roberval.

Os valores retornados serão referentes as posições onde há True no array booleano. Vamos analisar cada posição:

0133456789
FalseFalseFalseFalseFalseFalseTrueTrueTrueTrue

Onde a primeira linha refere-se aos elementos que estão em contador e na segunda linha há o array booleano utilizado para seleção.

Quando você faz contador[[False, False, False, False, False, False, True, True, True, True]] o que está dizendo para o algoritmo é "me retorna os elementos de contador onde a posição passada é True".

Como há 4 True vão ser retornados esses elementos, que como mostra a tabela acima refere-se aos elementos 6, 7, 8 e 9.

agora entendi!! valeu!!!