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.
Additional Resources
The following tutorials explain how to perform other common tasks in NumPy:
How to Fill NumPy Array with Values
How to Remove Specific Elements from NumPy Array
How to Replace Elements in NumPy Array
How to Get Specific Row from NumPy Array