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