Comment arrondir tous les éléments d'une matrice avec numpy en python ?

Published: 02 décembre 2014

Tags: Python; Numpy;

DMCA.com Protection Status

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]])

Références