How to convert a float array to an integer array in python ?

March 22, 2019    /    Viewed: 164451    /    Comments: 0    /    Edit


Examples of how to convert a float array to an integer array in python:

Using the numpy function astype

To convert a float array to an integer array in python, a solution is to use astype, example:

>>> import numpy as np
>>> A = np.array((0.4, 1.6, 2.1, -3.7, 2.9))
>>> A
array([ 0.4,  1.6,  2.1, -3.7,  2.9])
>>> A = A.astype(int)
>>> A
array([ 0,  1,  2, -3,  2])

Round the numbers before converting them in integer

It is also possible to round the numbers and after convert them to integer using the numpy function around

>>> import numpy as np
>>> A = np.array((0.4, 1.6, 2.1, -3.7, 2.9))
>>> A
array([ 0.4,  1.6,  2.1, -3.7,  2.9])
>>> A = np.around(A)
>>> A
array([ 0.,  2.,  2., -4.,  3.])
>>> A = A.astype(int)
>>> A
array([ 0,  2,  2, -4,  3])

Note: work also with the function rint, example

>>> import numpy as np
>>> A = np.array((0.4, 1.6, 2.1, -3.7, 2.9))
>>> A
array([ 0.4,  1.6,  2.1, -3.7,  2.9])
>>> A = np.rint(A)
>>> A
array([ 0.,  2.,  2., -4.,  3.])
>>> A = A.astype(int)
>>> A
array([ 0,  2,  2, -4,  3])

Truncate the numbers first

>>> import numpy as np
>>> A = np.array((0.4, 1.6, 2.1, -3.7, 2.9))
>>> A
array([ 0.4,  1.6,  2.1, -3.7,  2.9])
>>> A = np.trunc(A)
>>> A
array([ 0.,  1.,  2., -3.,  2.])
>>> A = A.astype(int)
>>> A
array([ 0,  1,  2, -3,  2])

Round to the nearest bigger integer

>>> import numpy as np
>>> A = np.array((0.4, 1.6, 2.1, -3.7, 2.9))
>>> A
array([ 0.4,  1.6,  2.1, -3.7,  2.9])
>>> A = np.ceil(A)
>>> A
array([ 1.,  2.,  3., -3.,  3.])
>>> A = A.astype(int)
>>> A
array([ 1,  2,  3, -3,  3])

Round to the nearest smaller integer

>>> import numpy as np
>>> A = np.array((0.4, 1.6, 2.1, -3.7, 2.9))
>>> A
array([ 0.4,  1.6,  2.1, -3.7,  2.9])
>>> A = np.floor(A)
>>> A
array([ 0.,  1.,  2., -4.,  2.])
>>> A = A.astype(int)
>>> A
array([ 0,  1,  2, -4,  2])

References

Links Site
astype docs.scipy.org
around scipy doc
rint doc scipy
trunc doc scipy
ceil doc scipy
floor doc scipy
How to convert 2D float numpy array to 2D int numpy array? stackoverflow
Rounding scipy doc
Better rounding in Python's NumPy.around: Rounding NumPy Arrays stackoverflow
are numpy array elements rounded automatically? stackoverflow


Card image cap
profile-image
Daidalos

Hi, I am Ben.

I have developed this web site from scratch with Django to share with everyone my notes. If you have any ideas or suggestions to improve the site, let me know ! (you can contact me using the form in the welcome page). Thanks!