How to Convert NumPy Array of Floats into Integers?

To convert a NumPy array of floats into integers, use the numpy.ndarray.astype() method, passing in ‘int’ as the data type. This will convert each float value in the array to the nearest integer. Additionally, you can use the numpy.around() method to round the array values to the desired precision before converting them into integers.


You can use the following methods to convert a NumPy array of floats to an array of integers:

Method 1: Convert Floats to Integers (Rounded Down)

rounded_down_integer_array = float_array.astype(int)

Method 2: Convert Floats to Integers (Rounded to Nearest Integer)

rounded_integer_array = (np.rint(some_floats)).astype(int)

Method 3: Convert Floats to Integers (Rounded Up)

rounded_up_integer_array = (np.ceil(float_array)).astype(int)

The following examples show how to use each method in practice with the following NumPy array of floats:

import numpy as np

#create NumPy array of floats
float_array = np.array([2.33, 4.7, 5.1, 6.2356, 7.88, 8.5])

#view array
print(float_array)

[2.33   4.7    5.1    6.2356 7.88   8.5   ]

#view dtype of array
print(float_array.dtype)

float64

Example 1: Convert Floats to Integers (Rounded Down)

The following code shows how to convert a NumPy array of floats to an array of integers in which each float is rounded down to the nearest integer:

#convert NumPy array of floats to array of integers (rounded down)
rounded_down_integer_array = float_array.astype(int)

#view array
print(rounded_down_integer_array)

[2 4 5 6 7 8]

#view dtype of array
print(rounded_down_integer_array.dtype)

int32

Notice that each float has been rounded down to the nearest integer and the new array has a dtype of int32.

Example 2: Convert Floats to Integers (Rounded to Nearest Integer)

The following code shows how to convert a NumPy array of floats to an array of integers in which each float is rounded to the nearest integer:

#convert NumPy array of floats to array of integers (rounded to nearest)
rounded_integer_array = (np.rint(float_array)).astype(int)

#view array
print(rounded_integer_array)

[2 5 5 6 8 8]

#view dtype of array
print(rounded_integer_array.dtype)

int32

Notice that each float has been rounded to the nearest integer and the new array has a dtype of int32.

Example 3: Convert Floats to Integers (Rounded Up)

The following code shows how to convert a NumPy array of floats to an array of integers in which each float is rounded up to the nearest integer:

#convert NumPy array of floats to array of integers (rounded up)
rounded_up_integer_array = (np.ceil(float_array)).astype(int)

#view array
print(rounded_up_integer_array)

[3 5 6 7 8 9]

#view dtype of array
print(rounded_up_integer_array.dtype)

int32

Notice that each float has been rounded up to the nearest integer and the new array has a dtype of int32.

The following tutorials explain how to perform other common tasks in NumPy:

x