Как исправить: объект numpy.float64 не поддерживает назначение элементов


Распространенная ошибка, с которой вы можете столкнуться при использовании Python:

 TypeError: 'numpy.float64' object does not support item assignment

Эта ошибка обычно возникает, когда вы пытаетесь использовать квадратные скобки для присвоения нового значения переменной NumPy, имеющей тип float64 .

В следующем примере показано, как устранить эту ошибку на практике.

Как воспроизвести ошибку

Допустим, мы создаем переменную NumPy со значением 15,22 и пытаемся использовать круглые скобки, чтобы присвоить ей новое значение 13,7 :

 import numpy as np

#define some float value
one_float = np. float64 (15.22)

#attempt to modify float value to be 13.7
one_float[0] = 13.7

TypeError: 'numpy.float64' object does not support item assignment

Мы получаем сообщение об ошибке, что объект numpy.float64 не поддерживает присвоение элементов .

Мы получили эту ошибку, поскольку one_float является скаляром, но мы попытались рассматривать его как массив, в котором мы могли бы использовать квадратные скобки для изменения значения в позиции индекса 0.

Поскольку one_float не является массивом, мы не можем использовать квадратные скобки при попытке изменить его значение.

Как исправить ошибку

Способ устранения этой ошибки — просто не использовать квадратные скобки при присвоении нового значения вещественному числу:

 #modify float value to be 13.7
one_float = 13.7

#view float
print (one_float)

13.7

Нам удалось изменить значение с 15,22 на 13,7 , потому что мы не использовали круглые скобки.

Обратите внимание, что квадратные скобки можно использовать для изменения значений в определенных позициях индекса, если вы работаете с массивом.

Например, следующий код показывает, как изменить первый элемент массива NumPy с 15,22 на 13,7 , используя скобочную запись:

 import numpy as np

#define a NumPy array of floats
many_floats = np. float64 ([15.22, 34.2, 15.4, 13.2, 33.4])

#modify float value in first index position of array to be 13.7
many_floats[0] = 13.7

#view updated array
print (many_floats)

[13.7 34.2 15.4 13.2 33.4]

На этот раз мы также не получаем ошибки, поскольку работаем с массивом NumPy, поэтому имеет смысл использовать круглые скобки.

Дополнительные ресурсы

В следующих руководствах объясняется, как исправить другие распространенные ошибки в Python:

Как исправить в Python: объект «numpy.ndarray» не подлежит вызову
Как исправить: Ошибка типа: объект «numpy.float64» не может быть вызван
Как исправить: Ошибка типа: ожидаемый строковый или байтовый объект

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *