Import des bibliothèques
Afin d'utiliser les bibliothèques mathématiques
de
Ici,
python
, il est nécessaire de les importer (de
manière équivalente à la primitive include
en
langage C). La manière recommandée d'importer une bibliothèque
comme numpy
est la suivante :
import numpy as np;
np
est un alias pour le nom de la
bibliothèque numpy
. Après l'avoir importée, il
devient possible d'accéder aux fonctions définies à l'intérieur
de cette bibliothèque en les préfixant par le nom de la
bibliothèque ou de son alias :
np.sqrt(5); >> 2.2360679774997898
Écriture de fonctions
Pour définir une fonction en
python
, il
faut utiliser le mot-clé def
de la manière suivante :
def func(x,y): """ Example of function adding x and y""" return(x+y)
Quelques remarques :
- En
python
, il n'y a pas de délimiteurs comme en langageC
. Le corps de la fonction est donc délimité par le mot-clédef
au début et la dernière ligne de code à la fin. - Les indentations du code par des tabulations (le caractère "________") sont obligatoires pour que le code soit accepté par l'interpréteur.
- La deuxième ligne correspond à la documentation de la fonction,
et apparaîtra lors de l'appel à la commande
help(func)
.
Instructions conditionnelles / Boucles
Les instructions conditionnelles et les boucles ont
une syntaxe ressemblant fortement à l'écriture de
fonctions. Ici aussi, l'indentation est importante :
if cond:
instr |
if cond_1: instr_1 elif cond_2: instr_2 else: instr_n |
for x in array:
instr |
while cond:
instr |
Remarque :
les boucles utilisent des tableaux (arrays), que l'on peut
créer avec les commandes
range
(pour les
entiers), array
ou arange
(cf aide-mémoire).
Structures de données
En
python
, il existe différentes
structures de données permettant de représenter des ensembles de
nombres flottants :
- les tuples
python :
(1,2,3,4)
Ces structures non modifiables sont construites à l'aide de parenthèses \verb'()' encadrant une liste de nombres séparés par des virgules. Parmi les opérations possibles :tup = (1,2) tup[1] # -> 2 Access to elements 1 in tup # -> True, Membership test tup + tup # -> (1,2,1,2) Concatenation for i in (1,2): print i # -> 1 2 Loops over tuples
- les listes
python :
[1,2,3,4]
Ces structures modifiables sont construites à l'aide des crochets \verb'[]' encadrant une liste de nombres séparés par des virgules. Les opérations possibles sur les tableaux sont les mêmes que sur les tuples, en ajoutant :arr = [1,2,3,4,5,6,7,8,9,10,11,12] arr[0] = 7 # -> [7,2,3 ... Modification of an element arr.append(42) # -> ..., 12,42] Addition of an element arr[0:6] # -> [1,2,3,4,5,6] Sub-array arr[0:6:2] # -> [1,3,5] Slicing for i in arr: print i # -> 1 2 3 ... Loops over arrays
- les tableaux de la
bibliothèque numpy :
numpy.array([1,2,3,4])
Ils possèdent la plupart du temps les mêmes propriétés que les tableauxpython
, mais se comportent différemment pour les opérations arithmétiques. Cela les rend pratiques pour la manipulation de vecteurs :nar = numpy.array([1,2,3,4]) arr + arr # -> [2,4,6,8] Addition of arrays arr * arr # -> [1,4,9,16] Multiplication of arrays
- les matrices définies
dans cette même bibliothèque :
numpy.matrix([[1, 2], [3, 4]])
Ces matrices sont des tableaux particuliers à une ou deux dimensions. La principale différence avec les autres types de tableaux, est que l'opération de multiplication utilise le produit de matrices plutôt que le produit terme à terme.nmat = numpy.matrix( [[1, 1], [0, 1]] ) nmat * nmat # -> [[1, 2], [0, 1]] Matrix multiplication
Commandes graphiques
Pour afficher des graphiques à l'aide de
:
Cette série d'appels de fonctions ne fait que calculer le
graphique. Il reste encore à le sauvegarder dans un fichier :
Pour obtenir un graphique plus parlant, il ne faut pas oublier de
légender les axes et de lui donner un titre :
Pour des exemples plus complexes,
la galerie
de matplotlib contient de nombreux graphiques fournis avec leur
code.
python
, la
bibliothèque matplotlib offre un panel de fonctions assez
large. Par exemple, pour dessiner la courbe d'une fonction comme
la fonction .png)
import matplotlib.pyplot as mp import numpy as np t = np.arange(0.0, 2.0, 0.01) s = np.cos(2*np.pi*t) mp.plot(t, s, linewidth=1.0)
mp.savefig("figure")
mp.xlabel('Abscissa') mp.ylabel('Ordinate') mp.legend('Da wave') mp.title('Surfing on the wave')