Home » How to Fix: ‘numpy.float64’ object cannot be interpreted as an integer

# How to Fix: ‘numpy.float64’ object cannot be interpreted as an integer

One error you may encounter when using NumPy is:

```TypeError: 'numpy.float64' object cannot be interpreted as an integer
```

This error occurs when you supply a float to some function that expects an integer.

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

### How to Reproduce the Error

Suppose we attempt to use the following for loop to print out various numbers in a NumPy array:

```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
```

We receive an error because the range() function expects an integer, but the values in the NumPy array are floats.

### How to Fix the Error

There are two ways to quickly fix this error:

Method 1: Use the int() Function

One way to fix this error is to simply wrap the call with int() as follows:

```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)
```

By using the int() function, we convert each float value in the NumPy array to an integer so we avoid the TypeError we encountered earlier.

Method 2: Use the .astype(int) Function

Another way to fix this error is to first convert the values in the NumPy array to integers:

```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)```

Using this method, we avoid the TypeError once again.