Chapvecteur
Chapvecteur
Chapvecteur
1 Les vecteurs
1.1 Définition
a) A la main
On peut définir chacun des éléments de la matrice:
In []: v = np . a r r a y ([1. ,2. ,3.]) ;
In []: np .arange (2 ,3.2 ,0.2) # (3.2 -2) /0.2 n ’ est pas entier
Out []: array ([ 2. , 2.2 , 2.4 , 2.6 , 2.8 , 3. , 3.2])
c) Pas constant : linspace Pour un vecteur à pas constant, si cette fois on veut indiquer le
nombre d’éléments, on peut utiliser la commande linspace(a,b,num=n) qui construit:
1
b−a b−a b−a
(a, a + ,a + 2 , · · · , a + (n − 2) , b).
n−1 n−1 n−1
In []: np . l i n s p a c e (2.0 , 3.0 , num =5)
Out []: array ([ 2. , 2.25 , 2.5 , 2.75 , 3. ])
In []: pas
Out []: 0.25
2
1.3 Copies de vecteurs
In []: a = np . a r r a y ([1 , 2 , 3] , f l o a t )
In []: b = a
In []: c = a .copy ()
In []: a [0] = 0 # On modifie a
In []: a
Out []: array ([0. , 2. , 3.])
In []: c
Out []: array ([1. , 2. , 3.]) # c n ’a pas \ ’ et \ ’ e modifi \ ’ e
Attention, l’instruction b=a n’effectue une copie que de l’adresse d’un vecteur.
In []: np . alen ( a )
Out []: 5
In []: a . s i z e
Out []: 5
In []: a . shape
Out []: (5 ,)
2 Les Matrices
2.1 Définition
a) A la main
In []: A = np . a r r a y ([[1 ,2 ,3] ,[4 ,5 ,6]]) ;
3
b) Matrices particulères
np.eye(n) matrice identité de taille n.
np.zeros((n,m)) matrice de taille n×n ou n×m remplie de zeros.
np.ones((n,m)) matrice de taille n×n ou n×m remplie de uns.
np.random.rand(n,m) matrice de taille n×n ou n×m remplie de nombres aléatoires.
np.diag(v) matrice dont la diagonale est le vecteur v.
Pour toutes ces fonctions, on peut préciser le type des données: np.zeros((n,m),dtype=float).
Si on ne précise qu’un seul argument, on obtient un vecteur:
In []: a = np . zeros (5)
In []: a
Out []: array ([ 0. , 0. , 0. , 0. , 0.])
In []: a . shape
Out []: (5 ,)
4
b) Opérations élémentaires
Les opérations élémentaires comme les additions, multiplications, divisions et puissances,
se font terme à terme.
In []: A = np . a r r a y ([[1 ,2 ,3] ,[1 ,1 ,1]]) ;
In []: B = np . a r r a y ([[1 ,1 ,1] ,[3 ,2 ,1]]) ;
In []: A*B
Out []: array ([[1 , 2 , 3] ,
[3 , 2 , 1]])
c) Algèbre linéaire
np.dot(A,B) Produit des matrices A et B
np.vdot(x,y) Produit scalaire des vecteurs x et y
np.linalg.inv(A) Inverse de A
np.linalg.solve(A,b) Résolution de AX = b
np.linalg.det(A,b) déterminant de A
np.trace(A) trace de A
np.rank(A) rang de A
d) Autres opérations
# Calcul du maximum , par colonne , par ligne
In []: A = np . a r r a y ([[1 ,10 ,3] ,[5 ,2 ,7]])
In []: np .amax(A , axis =0) # Maximum sur chaque colonne
Out []: array ([ 5 , 10 , 7])
In []: np .amax(A , axis =1) # Maximum sur chaque ligne
Out []: array ([10 , 7])
In []: A . astype ( i n t )
Out []: array ([[4 , 1] ,
[8 , 1]])
5
[1 , 1] ,
[2 , 2]])
Les instructions suivantes permettent d’ajouter une ligne et une colonne
In []: np . i n s e r t (A ,1 , np . a r r a y ([5 , 5 , 5]) , axis =0)
Out []: array ([[1 , 2 , 3] ,
[5 , 5 , 5] ,
[1 , 1 , 1] ,
[2 , 2 , 2]])
c) Redimensionnement
In []: a = np . a r r a y ( range (6) ) ; a
Out []: array ([0 , 1 , 2 , 3 , 4 , 5])
On peut ajouter des lignes:
In []: a = np . a r r a y ([[1 ,2 ,3] ,[9 ,1 ,0]])
In []: b = np . vstack (( a , np . a r r a y ([8 ,8 ,8]) ) )
In []: b
Out []: array ([[1 , 2 , 3] ,
[9 , 1 , 0] ,
[8 , 8 , 8]])
Pour ajouter une matrice en colonne, il faut redimensionner le vecteur
In []: a = np . a r r a y ([[1 ,2 ,3] ,[9 ,1 ,0]])
In []: b = np . h s t a c k (( a , np . a r r a y ([8 ,8]) .re shape (2 ,1) ) )
In []: b
Out []: array ([[1 , 2 , 3 , 8] ,
[9 , 1 , 0 , 8]])
6
3 Sauvegarder des matrices dans un fichier
In []: A =1.978* np . ones ((3 ,2) )
In []: np . savetxt ( ’ matA . txt ’ , A , fmt = ’ %6.4 f ’)
In []: B = np . loadtxt ( ’ matA . txt ’)