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

Diferença de reposta na contagem de NaNs

Boa tarde prezados,

Gostaria de saber se a reposta do meu código está correta, pois está diferente da que o professor apresentou no vídeo.

Na função: sum(np.isnan(Kaliningrad)) A resposta foi: np.int64(1)

No video a saída do professor foi: 1

Creio que possa ser uma atualização do Python mas gostaria de ter certeza.

Grato de atenção

2 respostas
solução!

Olá, Pedro! Como vai?

Primeiramente, essa situação é completamente normal! A gente observa essas diferenças por causa de atualizações da biblioteca NumPy e atualizações nos ambientes de execução, versões anteriores no Google Colab exibiam os valores do tipo np.float64 de forma mais limpa, por exemplo:

98.79

Ao invés de:

np.float64(98.79)

O comportamento atual foi adotado para exibir o tipo completo do objeto, porque os valores em questão não são um tipo float nativo do Python, mas sim valores do tipo np.float64 do NumPy.

Mas vou deixar aqui algumas alternativas para você exibir o valor de maneira limpa, vamos lá?!

1 Usando a função print()

Exatamente, com a função print() o valor é exibido da maneira como você gostaria.

Exemplo:

import numpy as np

x = 2*3+80
y = np.power(x,2)

print(y)

Resultado:

7396

2 Usando o método .item()

O método .item() extrai e retorna o valor Python puro de um objeto NumPy escalar.

Exemplo:

import numpy as np

x = 2*3+80
np.power(x,2)

y.item()

Resultado:

7396

3 Ativando a formatação legacy

A instrução np.set_printoptions(legacy='1.25') é uma configuração da biblioteca NumPy para alterar a forma como os objetos NumPy são exibidos, ela ativa o modo de formatação legacy (legado), resultando em uma exibição que era da versão 1.25 ou anterior.

Exemplo:

import numpy as np
np.set_printoptions(legacy='1.25')

x = 2*3+80
y = np.power(x,2)

y

Resultado:

7396

Mas atenção, depois que executá-la, você deverá reiniciar a sessão no Google Colab caso desejar voltar à configuração atual.

4 Usando o Jupyter Notebook

E se quiser um fluxo de trabalho sem essas alternativas, uma maneira seria usando o Jupyter Notebook. Um ambiente de execução bem completo e muito popular nos campos de Análise e Ciência de Dados.

Vou deixar abaixo a execução desse mesmo código no Jupyter Notebook:

Captura de tela do código Python usando NumPy para calcular e exibir o quadrado de um número, resultando em 7396, com o tipo numpy.int32.

Repare que ao visualizar o y, o valor 7396 é exibido de maneira limpa. Daniel, o valor não sofreu conversão? Não, repare que o tipo da variável y continua sendo um tipo NumPy (numpy.int32).

Resumindo, são comportamentos específicos de versões e ambientes de execução, não há nada de errado com o seu código. Mas você pode tomar algumas dessas escolhas para te deixar mais confortável durante o processo de análise dos dados.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Espero ter ajudado e fico à disposição se precisar.

Abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

Muito obrigado, Daniel!

Resposta muito esclarecedora.