September 21, 2021 / Viewed: 231 / Comments: 0 / Edit

Examples of how to round all the elements of a matrix with numpy in python:

Let's create first a matrix of float with numpy

`import numpy as np`

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

gives for example

`array([[ 0.54545428, 62.89794368, 50.60548232, 57.47598712, 11.78324876],`

`[57.10987983, 19.58684319, 7.67338724, 10.76866391, 90.78997325],`

`[62.25706073, 42.60884215, 58.72412611, 91.84459902, 26.1276944 ],`

`[ 6.51345784, 76.53505447, 71.20775378, 56.07274006, 79.39644899]])`

To round all elements of a matrix with numpy, a solution is to use numpy.matrix.round, example round with 2 decimals:

`np.round(data,2)`

gives

`array([[ 0.55, 62.9 , 50.61, 57.48, 11.78],`

`[57.11, 19.59, 7.67, 10.77, 90.79],`

`[62.26, 42.61, 58.72, 91.84, 26.13],`

`[ 6.51, 76.54, 71.21, 56.07, 79.4 ]])`

example round with 1 decimals:

`np.round(data,1)`

gives

`array([[ 0.5, 62.9, 50.6, 57.5, 11.8],`

`[57.1, 19.6, 7.7, 10.8, 90.8],`

`[62.3, 42.6, 58.7, 91.8, 26.1],`

`[ 6.5, 76.5, 71.2, 56.1, 79.4]])`

example round with 0 decimals:

`np.round(data,0)`

gives

`array([[ 1., 63., 51., 57., 12.],`

`[57., 20., 8., 11., 91.],`

`[62., 43., 59., 92., 26.],`

`[ 7., 77., 71., 56., 79.]])`

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

`data.astype(int)`

gives

`array([[ 0, 62, 50, 57, 11],`

`[57, 19, 7, 10, 90],`

`[62, 42, 58, 91, 26],`

`[ 6, 76, 71, 56, 79]])`

License

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.