Comment changer le type d'une matrice avec numpy en python ?

Published: 21 juillet 2020

Tags: Python; Numpy;

DMCA.com Protection Status

Exemples de comment changer le type d'une matrice avec numpy en python:

Changer le type d'une matrice existante

Soit par exemple la matrice de nombres entiers suivantes:

import numpy as np

A = np.array([[10, 20, 30], [60, 20, 10], [50, 30, 90]])

print(A)
print(A.dtype)

donne ici

[[10 20 30]
[60 20 10]
[50 30 90]]

et

int64

Pour changer le type de cette matrice on peut utiliser astype (voir aussi numpy.ndarray.dtype)

A = A.astype('float64')

print(A)
print(A.dtype)

donne

[[10. 20. 30.]
[60. 20. 10.]
[50. 30. 90.]]

et

float64

Initialiser une matrice avec un type donnée

On peut aussi preciser le type au moment de la création de la matrice, exemple:

import numpy as np

A = np.array([[1, 2, 3]], dtype=float)

print(A)

print(A.dtype)

donne

[[1. 2. 3.]]

et

float64

Combiner des matrices de différent type

Il est important de vérifier le type d'une matrice pour ne pas perdre d'information, exemple soit la matrice A suivante

A = np.array([[10, 20, 30], [60, 20, 10], [50, 30, 90]])

donne

[[10 20 30]
 [60 20 10]
 [50 30 90]]

et la matrice B:

B= np.array([[2.1, 7.3, 4.5]])

donne

[[2.1 7.3 4.5]]

Si on modifie une ligne de A en utilisant B comme ceci:

A[1,:] = B

on obtient:

[[10 20 30]
 [ 2  7  4]
 [50 30 90]]

mais les éléments de B ont été modifiés. Pour éviter cela, on aurait pu faire par exemple au préalable:

A = A.astype('float64')

A[1,:] = B

donne

[[10.  20.  30. ]
 [ 2.1  7.3  4.5]
 [50.  30.  90. ]]

Références