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

np.float64

Olá!

Poderiam me auxiliar nos cálculos de média? Utilizo o método notas["nota"].mean() Porém, retorna com np.float64(3.501556983616962)

Mesmo estando correto o cálculo, acho que isso me dificulta quando tento printar mais para frente dentro de alguma frase. Tento printar com print (f"A média é {media}") e retorna:


TypeError Traceback (most recent call last) in <cell line: 0>() ----> 1 print (f"A média é {media}")

TypeError: 'str' object is not callable

2 respostas
solução!

Olá, João Pedro! Como vai?

Uma solução para você testar no seu código é:

print(f"A média é {float(media)}")

O que estamos fazendo aqui é convertendo um objeto do tipo NumPy em um valor float nativo do Python.

Vou te apresentar o porquê disso e te sugerir outras possibilidades também, vamos lá?

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.

E vou deixar aqui algumas outras alternativas para você exibir o valor de maneira limpa, além da que eu já mostrei em float(media).

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

Obrigado pelo retorno Daniel!