Exemples de comment arrondir tous les éléments d'une matrice avec numpy en python
Créer une matrice de float avec numpy
Créons d'abord une matrice de float avec numpy
import numpy as np
data = np.random.rand(4,5) * 100.0
donne par exemple
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]])
Arrondir tous les éléments d'une matrice avec numpy
Pour arrondir tous les éléments d'une matrice avec numpy, une solution consiste à utiliser numpy.matrix.round, exemple round avec 2 décimales :
np.round(data,2)
donne
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 ]])
exemple d'arrondi avec 1 décimales :
np.round(data,1)
donne
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]])
exemple d'arrondi avec 0 décimales :
np.round(data,0)
donne
array([[ 1., 63., 51., 57., 12.],
[57., 20., 8., 11., 91.],
[62., 43., 59., 92., 26.],
[ 7., 77., 71., 56., 79.]])
Convertir une matrice de flottants en entiers
Une autre solution consiste à convertir la matrice de flottants en nombres entiers avec astype(int):
data.astype(int)
donne
array([[ 0, 62, 50, 57, 11],
[57, 19, 7, 10, 90],
[62, 42, 58, 91, 26],
[ 6, 76, 71, 56, 79]])