Como corrigir: o objeto ‘numpy.float64’ não pode ser interpretado como um int
Um erro que você pode encontrar ao usar o NumPy é:
TypeError : 'numpy.float64' object cannot be interpreted as an integer
Este erro ocorre quando você fornece um float para uma função que espera um número inteiro.
O exemplo a seguir mostra como corrigir esse erro na prática.
Como reproduzir o erro
Suponha que tentemos usar o seguinte loop for para imprimir números diferentes em um array NumPy:
import numpy as np #define array of values data = np. array ([3.3, 4.2, 5.1, 7.7, 10.8, 11.4]) #use for loop to print out range of values at each index for i in range(len(data)): print (range(data[i])) TypeError : 'numpy.float64' object cannot be interpreted as an integer
Recebemos um erro porque a função range() espera um número inteiro, mas os valores no array NumPy são flutuantes.
Como corrigir o erro
Existem duas maneiras de corrigir esse erro rapidamente:
Método 1: use a função int()
Uma maneira de corrigir esse erro é simplesmente encerrar a chamada com int() da seguinte maneira:
import numpy as np #define array of values data = np. array ([3.3, 4.2, 5.1, 7.7, 10.8, 11.4]) #use for loop to print out range of values at each index for i in range(len(data)): print (range(int(data[i]))) range(0, 3) range(0, 4) range(0, 5) range(0, 7) range(0, 10) range(0, 11)
Usando a função int() , convertemos cada valor flutuante no array NumPy em um número inteiro para evitar o TypeError que encontramos anteriormente.
Método 2: use a função .astype(int)
Outra maneira de corrigir esse erro é primeiro converter os valores do array NumPy em números inteiros:
import numpy as np #define array of values data = np. array ([3.3, 4.2, 5.1, 7.7, 10.8, 11.4]) #convert array of floats to array of integers data_int = data. astype (int) #use for loop to print out range of values at each index for i in range(len(data)): print (range(data[i])) range(0, 3) range(0, 4) range(0, 5) range(0, 7) range(0, 10) range(0, 11)
Ao usar este método evitamos o TypeError novamente.
Recursos adicionais
Os tutoriais a seguir explicam como corrigir outros erros comuns em Python:
Como corrigir KeyError em Pandas
Como corrigir: ValueError: não é possível converter float NaN em int
Como corrigir: ValueError: os operandos não puderam ser transmitidos com formas