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édefau 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
:
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')