# How to round all the elements of a matrix with numpy in python ?

Published: September 21, 2021

Updated: February 21, 2023

Tags: Python; Numpy;

The SciPy library provides a convenient way to round all the elements of a matrix with numpy in python. Using numpy.around will allow us to set the number of decimal places and rounding type for each element in the array. Examples

## Create a matrix of float with numpy

Let's create first a matrix of float with numpy

````import numpy as np`

`np.random.seed(42)`

`data = np.random.rand(4,5) * 100.0`
```

Output

````array([[37.45401188, 95.07143064, 73.19939418, 59.86584842, 15.60186404],`
`       [15.59945203,  5.80836122, 86.61761458, 60.11150117, 70.80725778],`
`       [ 2.05844943, 96.99098522, 83.24426408, 21.23391107, 18.18249672],`
`       [18.34045099, 30.4242243 , 52.47564316, 43.19450186, 29.12291402]])`
```

## Round all elements of a matrix with numpy

For example, if you wanted to round all numbers in a matrix to two decimal places, you would use np.around(matrix, decimals=2). You can also use numpy.floor or numpy.ceil to round numbers down or up respectively. Additionally, if you want to round all elements of a matrix element-wise, you can use the np.round function, which provides more control over how the rounding is performed:

````np.around(data,2)`
```

Output

````array([[37.45, 95.07, 73.2 , 59.87, 15.6 ],`
`       [15.6 ,  5.81, 86.62, 60.11, 70.81],`
`       [ 2.06, 96.99, 83.24, 21.23, 18.18],`
`       [18.34, 30.42, 52.48, 43.19, 29.12]])`
```

Example round with 1 decimals:

````np.around(data,1)`
```

Output

````array([[37.5, 95.1, 73.2, 59.9, 15.6],`
`       [15.6,  5.8, 86.6, 60.1, 70.8],`
`       [ 2.1, 97. , 83.2, 21.2, 18.2],`
`       [18.3, 30.4, 52.5, 43.2, 29.1]])`
```

Example round with 0 decimals:

````np.around(data,0)`
```

Output

````array([[37., 95., 73., 60., 16.],`
`      [16.,  6., 87., 60., 71.],`
`      [ 2., 97., 83., 21., 18.],`
`       [18., 30., 52., 43., 29.]])`
```

## Numpy round() vs around()

Same functions

````np.round(data,2)`
```

Output

````array([[37.45, 95.07, 73.2 , 59.87, 15.6 ],`
`       [15.6 ,  5.81, 86.62, 60.11, 70.81],`
`       [ 2.06, 96.99, 83.24, 21.23, 18.18],`
`       [18.34, 30.42, 52.48, 43.19, 29.12]])`
```

## Convert a matrix of floats into integers

Another solution is to convert the matrix of floats to integers with astype(int):

````data.astype(int)`
```

Output

````array([[ 0, 62, 50, 57, 11],`
`       [57, 19,  7, 10, 90],`
`       [62, 42, 58, 91, 26],`
`       [ 6, 76, 71, 56, 79]])`
```