Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Calculando o desvio padrão #2

Bom dia

dataset['Idade'].groupby(dataset['Sexo']=='M').std()

Diferente do proposto no exercício, eu utilizei essa forma para achar o que foi pedido. Em questões de performace, em uma busca muito grande, faria diferença as duas formas? Eu obtive dois resultados, um False e um True, só fiquei com o True.

1 resposta
solução!

Boas Danival! Tudo bem? Espero que sim!

Realizei alguns testes reproduzindo ambos os códigos e cheguei a seguinte conclusão:

Os testes foram feitos no Google Collab, usando a função do próprio Colab time, que faz a contagem do tempo que a célula demorou a ser excecutada.

Como cada vez que você faz login no Collab você aloca uma máquina diferente, os resultados podem ser diferentes, mas veja os meus resultados abaixo:

Usando o código descrito pelo professor:

time dataset.groupby(['Sexo']).std().loc['M']

Houve o retorno:

CPU times: user 3.87 ms, sys: 1.19 ms, total: 5.05 ms
Wall time: 6.53 ms
Idade    16.64532
Name: M, dtype: float64

Enquanto usando o seu código:

time dataset['Idade'].groupby(dataset['Sexo']=='M').std()

O retorno foi:

CPU times: user 1.62 ms, sys: 123 µs, total: 1.74 ms
Wall time: 1.99 ms
Sexo
False    11.898879
True     16.645320
Name: Idade, dtype: float64

O que significa que o seu código foi mais rápido, pois não teve que realizar as buscas, e fez a o std baseado em valores booleanos, que são processados de forma mais rápida que o loc, que traabalha com strings, nesse caso.

Esse processo de buscar a solução mais eficiente em tempo muitas vezes é chamada de "escovar os bits". De maneira geral, não é necessário se preocupar com isso, a não ser que:

  1. A quantidade de dados seja imensamente grande; ou
  2. O tempo de excecução seja crucial para o programa.

Espero ter ajudado! Bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software