Home » How to Fix: ‘numpy.float64’ object does not support item assignment

How to Fix: ‘numpy.float64’ object does not support item assignment

by Tutor Aspire

One common error you may encounter when using Python is:

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

This error usually occurs when you attempt to use brackets to assign a new value to a NumPy variable that has a type of float64.

The following example shows how to resolve this error in practice.

How to Reproduce the Error

Suppose we create some NumPy variable that has a value of 15.22 and we attempt to use brackets to assign it a new value of 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

We receive the error that ‘numpy.float64’ object does not support item assignment.

We received this error because one_float is a scalar but we attempted to treat it like an array where we could use brackets to change the value in index position 0.

Since one_float is not an array, we can’t use brackets when attempting to change its value.

How to Fix the Error

The way to resolve this error is to simply not use brackets when assigning a new value to the float:

#modify float value to be 13.7
one_float = 13.7

#view float
print(one_float)

13.7

We’re able to successfully change the value from 15.22 to 13.7 because we didn’t use brackets.

Note that it’s fine to use brackets to change values in specific index positions as long as you’re working with an array.

For example, the following code shows how to change the first element in a NumPy array from 15.22 to 13.7 by using bracket notation:

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]

This time we don’t receive an error either because we’re working with a NumPy array so it makes sense to use brackets.

Additional Resources

The following tutorials explain how to fix other common errors in Python:

How to Fix in Python: ‘numpy.ndarray’ object is not callable
How to Fix: TypeError: ‘numpy.float64’ object is not callable
How to Fix: Typeerror: expected string or bytes-like object

You may also like