from numpy import *
v = array( [1., 2., 3.] )
print v
v # c'est un array, et pas une liste basique Python
[ 1. 2. 3.]
array([ 1., 2., 3.])
print "Le vecteur v est de taille", len(v), "."
n, = shape(v) # v est un vecteur, donc seule la première dimension nous intéresse
print "Il contient donc ", n, " éléments."
shape(v)
Le vecteur v est de taille 3 . Il contient donc 3 éléments.
(3,)
v = arange(1, 15, 2) # nombres impairs de 1 à 14 : arange() au lieu de range()
print v
v[0] = 100
print v[:2], v[3:5]
[ 1 3 5 7 9 11 13] [100 3] [7 9]
u = array([1,2,3])
v = u
w = u.copy()
print v
print w
print
u[2] = 100 # modifie u, ainsi que v qui est juste un alias pour u.
print v
print w
[1 2 3] [1 2 3] [ 1 2 100] [1 2 3]
v = arange(0., 2., 0.3)
print v
[ 0. 0.3 0.6 0.9 1.2 1.5 1.8]
print linspace(0, 1, 9)
print linspace(0, pi, 10)
[ 0. 0.125 0.25 0.375 0.5 0.625 0.75 0.875 1. ] [ 0. 0.34906585 0.6981317 1.04719755 1.3962634 1.74532925 2.0943951 2.44346095 2.7925268 3.14159265]
print v
print 10 * v
print sqrt(v)
[ 0. 0.3 0.6 0.9 1.2 1.5 1.8] [ 0. 3. 6. 9. 12. 15. 18.] [ 0. 0.54772256 0.77459667 0.9486833 1.09544512 1.22474487 1.34164079]
u = array( [2., 2., 2., 2., 2., 2., 2.] )
print u
print v
print
print u + v
print u * v # note : ceci est équivalent à 2 * v
[ 2. 2. 2. 2. 2. 2. 2.] [ 0. 0.3 0.6 0.9 1.2 1.5 1.8] [ 2. 2.3 2.6 2.9 3.2 3.5 3.8] [ 0. 0.6 1.2 1.8 2.4 3. 3.6]
u = array( [1., 2., 3.] )
u + v # erreur, les tailles de u et v sont différentes
--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-10-2581e0667113> in <module>() 1 u = array( [1., 2., 3.] ) ----> 2 u + v # erreur, les tailles de u et v sont différentes ValueError: operands could not be broadcast together with shapes (3) (7)
print v
print
print "La somme des éléments de v vaut", sum(v), "."
print
print "La moyenne des éléments de v est", mean(v), "."
print "De plus, l'écart type est de ", std(v), "."
m = array( [[1, 2, 3],
[4, 5, 6]])
print m
m
[[1 2 3] [4 5 6]]
array([[1, 2, 3], [4, 5, 6]])
m[0] # première ligne de la matrice
array([1, 2, 3])
len(m)
2
shape(m)
(2, 3)
print zeros( (3, 5) ) # matrice de 0s
[[ 0. 0. 0. 0. 0.] [ 0. 0. 0. 0. 0.] [ 0. 0. 0. 0. 0.]]
print eye(4) # matrice identité de taille 4, identity(4) convient aussi
[[ 1. 0. 0. 0.] [ 0. 1. 0. 0.] [ 0. 0. 1. 0.] [ 0. 0. 0. 1.]]
print diag(v) # matrice diagonale
[[ 0. 0. 0. 0. 0. 0. 0. ] [ 0. 0.3 0. 0. 0. 0. 0. ] [ 0. 0. 0.6 0. 0. 0. 0. ] [ 0. 0. 0. 0.9 0. 0. 0. ] [ 0. 0. 0. 0. 1.2 0. 0. ] [ 0. 0. 0. 0. 0. 1.5 0. ] [ 0. 0. 0. 0. 0. 0. 1.8]]
print ones( (2,3) ) # matrice de 1s
[[ 1. 1. 1.] [ 1. 1. 1.]]
print "m :"
print m
print
print "10 * m :"
print 10 * m
print
print "élévation des coefficients de m au carré :"
print m ** 2
print
print "m + matrice de 1s :"
print m + ones( (2,3) )
m : [[1 2 3] [4 5 6]] 10 * m : [[10 20 30] [40 50 60]] élévation des coefficients de m au carré : [[ 1 4 9] [16 25 36]] m + matrice de 1s : [[ 2. 3. 4.] [ 5. 6. 7.]]
print m.transpose() # transposée
print
print m.T # autre façon d'obtenir la transposée
[[1 4] [2 5] [3 6]] [[1 4] [2 5] [3 6]]
n = array( [ [1+1j, 1], [1-1j, 2+3*1j] ] )
print "n :"
print n
print
print "matrice conjuguée :"
print n.conj()
print
print "matrice adjointe :"
print n.conj().T
n : [[ 1.+1.j 1.+0.j] [ 1.-1.j 2.+3.j]] matrice conjuguée : [[ 1.-1.j 1.-0.j] [ 1.+1.j 2.-3.j]] matrice adjointe : [[ 1.-1.j 1.+1.j] [ 1.-0.j 2.-3.j]]
m * m # produit coefficient par coefficient
array([[ 1, 4, 9], [16, 25, 36]])
print m
print
print dot( m, array([0., 1., 2.]) )
print
print dot( array([1., 1.]), m )
print
print dot( m, diag([10, 100, 1000]) )
[[1 2 3] [4 5 6]] [ 8. 17.] [ 5. 7. 9.] [[ 10 200 3000] [ 40 500 6000]]