Одна ошибка, с которой вы можете столкнуться при использовании NumPy:
TypeError : 'numpy.float64' object cannot be interpreted as an integer
Эта ошибка возникает, когда вы предоставляете число с плавающей запятой какой-либо функции, которая ожидает целое число.
В следующем примере показано, как исправить эту ошибку на практике.
Как воспроизвести ошибку
Предположим, мы пытаемся использовать следующий цикл for для вывода различных чисел в массиве 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
Мы получаем ошибку, потому что функция range() ожидает целое число, но значения в массиве NumPy являются числами с плавающей запятой.
Как исправить ошибку
Есть два способа быстро исправить эту ошибку:
Способ 1: используйте функцию int()
Один из способов исправить эту ошибку — просто обернуть вызов функцией int() следующим образом:
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)
Используя функцию int() , мы преобразуем каждое значение с плавающей запятой в массиве NumPy в целое число, чтобы избежать ошибки TypeError , с которой мы столкнулись ранее.
Способ 2: используйте функцию .astype(int)
Другой способ исправить эту ошибку — сначала преобразовать значения в массиве NumPy в целые числа:
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)
Используя этот метод, мы снова избегаем TypeError .
Дополнительные ресурсы
В следующих руководствах объясняется, как исправить другие распространенные ошибки в Python:
Как исправить KeyError в Pandas
Как исправить: ValueError: невозможно преобразовать число с плавающей запятой NaN в целое число
Как исправить: ValueError: операнды не могли транслироваться вместе с фигурами