On peut bien sûr utiliser les constructeurs :
>>> from numpy import * >>> aa=array([ [1, 2, 3] ]) >>> aa array([ [1, 2, 3] ]) >>> bb=matrix(aa) >>> bb matrix([ [1, 2, 3] ])
On peut aussi utiliser asarray et asmatrix :
>>> bb=asarray(bb) >>> bb array([ [1, 2, 3] ]) >>> aa=asmatrix(aa) >>> aa matrix([ [1, 2, 3] ])
L'avantage de cette dernière méthode est qu'il n'y a pas de copie : c'est le même objet sous-jacent qui est utilisé, avec une vue différente. Procéder ainsi peut faire gagner du temps.
Comme pour les listes en Python, les matrices (array) peuvent être indéxées, tranchées et itérées :
>>> from numpy import * >>> a=array([10,20,30,40]) >>> a[2:4] = -7,-3 >>> for i in a: ... print i ... 10 20 -7 -3
On peut calculer la somme (terme à terme) de deux array :
>>> a array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]) >>> print a + a [[ 0 2 4 6 8] [10 12 14 16 18]]
On redimensionne une matrice en modifiant l'attribut shape :
>>> y = arange(12) >>> y array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) >>> y.shape = 3,4 >>> y array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]])
On peut réaliser des opérations avec des matrices n'ayant pas la même taille :
>>> y = arange(12) >>> y array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) >>> y.shape = 3,4 >>> y array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) >>> a=array([10,20,30,40]) >>> 3*a array([ 30, 60, 90, 120])
On peut alors sommer a et y, qui n'ont pas la même taille : la somme se fera ici par ligne
>>> a+y array([[10, 21, 32, 43], [14, 25, 36, 47], [18, 29, 40, 51]])
Considérons la matrice suivante :
>>> aa = matrix([ [1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16] ]) >>> aa matrix([ [ 1, 2, 3, 4], [ 5, 6, 7, 8], [ 9, 10, 11, 12], [13, 14, 15, 16] ])
On peut extraire sa partie triangulaire inférieure de la manière suivante :
>>> tril(aa) matrix([[ 1, 0, 0, 0], [ 5, 6, 0, 0], [ 9, 10, 11, 0], [13, 14, 15, 16]])
On peut demander plus ou moins de diagonales :
>>> tril(aa,-1) matrix([[ 0, 0, 0, 0], [ 5, 0, 0, 0], [ 9, 10, 0, 0], [13, 14, 15, 0]]) >>> tril(aa,1) matrix([[ 1, 2, 0, 0], [ 5, 6, 7, 0], [ 9, 10, 11, 12], [13, 14, 15, 16]])
On retrouve la même chose concernant la partie triangulaire supérieure :
>>> triu(aa,1) matrix([[ 0, 2, 3, 4], [ 0, 0, 7, 8], [ 0, 0, 0, 12], [ 0, 0, 0, 0]]) >>> triu(aa,-1) matrix([[ 1, 2, 3, 4], [ 5, 6, 7, 8], [ 0, 10, 11, 12], [ 0, 0, 15, 16]])