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

Uso de funções np não retornam valor float ou int como mostrado em aula.

No meu Colab estou enfrentando o seguinte problema: Em aula, quando o professor coloca, por exemplo, os seguintes códigos:

sum(np.isnan(Kaliningrad))

1

np.mean(Moscow)

98.79781609195402

np.linalg.norm(Moscow-y)

110.48504740461489

Sempre retorna um valor, como mostrado abaixo de cada código

Porém, no meu caso, retorna o valor como abaixo:

sum(np.isnan(Kaliningrad))

np.int(1)

np.mean(Moscow)

np.float64(98.79781609195402)

np.linalg.norm(Moscow-y)

np.float64(110.48504740461489)

Sendo assim, estou com problemas e erros para encontrar o resultado de códigos do tipo:

Kaliningrad[4] = np.mean(Kaliningrad[3], Kaliningrad[5])

A maneira que encontrei para resolver esse problema é colocar sempre a função na frente do código, por exemplo:

int(sum(np.isnan(Kaliningrad)))

1

float(np.mean(Moscow))

98.79781609195402

float(np.linalg.norm(Moscow-y))

110.48504740461489

Porém não é efetivo em 100% dos casos.

Como faço para deixar meu Colab igual ao do professor, sem que precise incluir float ou int na frente do código?

Obrigado!!!

1 resposta
solução!

Olá, Vitor! Como vai?

Primeiramente, essa situação é completamente normal! Isso acontece por causa da diferença de versões dos ambientes de execução, versões anteriores do 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)

Esse 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 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 nos ambientes de execução e não há nada de errado com o seu código. Mas você pode tomar algumas dessas escolhas para te deixar mais confortável com o processo de analisar os 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