How to Convert NumPy Array of Floats into Integers

Here are three ways to convert NumPy Array of Floats into Integers:

  1. Using numpy.astype()
  2. Using numpy.int_()
  3. Using numpy.asarray() with a dtype

Method 1: Use numpy.astype()

Here are three different techniques using the np.astype() method.

Technique 1: Converting float to integer (Rounded Down)

The astype(int) method truncates any decimal part and return an array of integers.

Visual Representation

Convert float to integer (Rounded Down)

Example

import numpy as np

float_array = np.array([3.14, 2.71, 1.62])

rounded_down_integer_array = float_array.astype(int)

print(rounded_down_integer_array)

print(rounded_down_integer_array.dtype)

Output

[3 2 1]
int64

Technique 2: Converting float to integers (Rounded to Nearest Integer)

The np.rint() method rounds each element to its nearest integer and return a float array. 

Visual Representation

Convert Floats to Integers (Rounded to Nearest Integer)

Example

import numpy as np

float_array = np.array([3.14, 2.71, 1.62])

rounded_nearest_integer_array = np.rint(float_array).astype(int)

print(rounded_nearest_integer_array)

print(rounded_down_integer_array.dtype)

Output

[3 3 2]
int64

Technique 3: Converting float to integer (Rounded Up)

The np.ceil() method round up, each element to its nearest integer and return a float array. 

Visual Representation

Convert Floats to Integers (Rounded Up)

Example

import numpy as np

float_array = np.array([3.14, 2.71, 1.62])

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

print(rounded_up_integer_array)

print(rounded_up_integer_array.dtype)

Output

[4 3 2]
int64

Converting a 2D numpy array of float to intConverting a 2D numpy array to int in Python

Example

import numpy as np

float_arr = np.array([[11.21, 19.21], [46.21, 18.21], [29.21, 21.21]])
print(float_arr)

print('After converting numpy float array to int array')
int_arr = float_arr.astype(int)
print(int_arr)

print("The data type of int_array is: ")
print(int_arr.dtype)

Output

[[11.21 19.21]
 [46.21 18.21]
 [29.21 21.21]]

After converting numpy float array to int array

[[11 19]
 [46 18]
 [29 21]]

The data type of int_array is:
int64

Method 2: Using np.int_()

The np.int_ type truncates the decimal parts of floats, similar to using the astype(int) method.

Visual Representation

Using the np.int_() method

Example

import numpy as np

float_array = np.array([[11.21, 19.21], [46.21, 18.21], [29.21, 21.21]])
print(float_array)

print('After converting numpy float array to int array')
int_array = np.int_(float_array)
print(int_array)

print("The data type of int_array is: ")
print(int_array.dtype)

Output

[[11.21 19.21]
 [46.21 18.21]
 [29.21 21.21]]

After converting numpy float array to int array
[[11 19]
 [46 18]
 [29 21]]

The data type of int_array is:
int64

Method 3: Use of numpy.asarray() with the dtype

Pass your float array along with dtype=’int’ as arguments to the np.asarray() method.

This dtype parameter will create a NumPy array of the specified integer type.

Visual Representation

Use of numpy.asarray() with the dtype

Example

import numpy as np

# Create a numpy array of float numbers
float_array = np.array([3.14, 2.71, 1.62])

int_array = np.asarray(float_array, dtype=np.int32)

print(int_array)

Output

[3 2 1]

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.