1. Bibliothèques en Python

1. Biblioth?ques en Python

Il existe plusieurs mani?res d'importer une biblioth?que. Imaginons que l'on ait cr?? le fichier test.py dont le code est le suivant:

print "Hello world"

def f(x): return x ** 2

def g(x): return x ** 0.5

variable = 5

On suppose que le fichier test.py se trouve dans le r?pertoire courant. Voici plusieurs mani?res de l'importer comme une biblioth?que.

Syntaxe

Acc?s ? f Acc?s ? g Acc?s ? variable

import test

test.f test.g

import test as t

t.f

t.g

from test import *

f

g

from test import g

Impossible g

from test import g as h Impossible h

test.variable t.variable variable Impossible Impossible

Remarque importante: une fois une biblioth?que charg?e, toute modification de son code-source est sans effet. Il faut utiliser reload(test) pour forcer le rechargement.

On pourra constater qu'? la diff?rence de l'instruction %run test.py, la cha?ne de caract?res "Hello world" n'est affich?e qu'au premier chargement de la biblioth?que. Il faudrait utiliser reload(test) pour r?ex?cuter le contenu du fichier.

In [1]:

import test print test.f print test.g print test.variable

Hello world 5

In [2]:

reload(test) import test as t print t.f print t.g print t.variable

Hello world 5

In [3]:

from test import * print f print g print variable

5

In [4]:

# Remise ? z?ro de l'environnement (uniquement les noms de variables!) %reset -f

from test import g print g print variable # Erreur

----------------------------------------------------------------------

-----

NameError

Traceback (most recent call

last)

in ()

4 from test import g

5 print g

----> 6 print variable # Erreur

NameError: name 'variable' is not defined

In [5]:

# Remise ? z?ro de l'environnement (uniquement les noms de variables!) %reset -f

from test import g as h print h print g # Erreur

----------------------------------------------------------------------

-----

NameError

Traceback (most recent call

last)

in ()

4 from test import g as h

5 print h

----> 6 print g # Erreur

NameError: name 'g' is not defined

2. La biblioth?que numpy

La biblioth?que numpy introduit le type ndarray ainsi que de nombreuses fonctions de calcul flottant notamment. Traditionnellement, on l'importe:

soit directement dans l'environnement courant (from numpy import *); soit sous un nom abr?g? (import numpy as np).

La biblioth?que numpy est sp?cialis?e dans la manipulation des tableaux (array). On l'utilisera essentiellement pour les vecteurs et les matrices

? Les tableaux numpy ne g?rent que les objets de m?me type

? La biblioth?que numpy propose un grand nombre de routines pour un acc?s rapide aux donn?es (ex. recherche, extraction), pour les manipulations diverses (ex. tri), pour les calculs (ex. calcul statistique et scientifique, calcul ?l?ment par ?l?ment, calcul matriciel)

? Les tableaux numpy sont plus performants (rapidit?, gestion de la volum?trie) que les it?rables usuel de Python (listes, tuples...)

? Les tableaux numpy sont sous-jacents ? de nombreux packages d?di?s au calcul scientifique sous Python.

? Une matrice est un tableau (array) ? 2 dimensions, un vecteur est un tableau (array) avec une seule ligne

? Indexation : En plus des m?thodes d'acc?s aux ?l?ments d?j? vues pour les listes (plages d'?l?ments avec :) il supporte l'indexation par une liste (ou un tableau) d'entiers. On fait alors r?f?rence au tableau constitu? des cases situ?es aux indices sp?cifi?s. On peut aussi indexer par un tableau de bool de m?me taille. On fait alors r?f?rence aux emplacements o? se trouve la valeur True.

? Ces indexations sont en outre accessibles en ?criture, soit par une seule valeur (qui est alors copi?e dans toutes les cases correspondantes), soit par un tableau de valeurs de m?me forme.

? ? la diff?rence des autres conteneurs, la plupart des op?rateurs ?l?ment sur les tableaux.

agissent ?l?ment par

? Il est possible de faire des tableaux de tableaux. Lorsqu'un tableau contient des tableaux de m?me type et de m?me longueur, il devient multi-dimensionnel et supporte alors une indexation multiple (un indice par axe, s?par?s par des virgules).

Pour plus d'infos sur cette biblioth?que : ()

2.1 Les vecteurs

In [6]:

# Cr?ation de vecteurs : from numpy import *

T1 = array([5, 4, 3, 2, 1, 0]) print T1 print type(T1) print len(T1)

[5 4 3 2 1 0] 6

In [7]:

# Indexation, acc?s T1 = array([5, 4, 3, 2, 3, 0]) print T1[2] print T1[::2] print T1[T1] print T1>2 print T1[T1 > 2] T1[T1 > 2] *= -1 print T1

3 [5 3 3] [0 3 2 3 2 5] [ True True True False [5 4 3 3] [-5 -4 -3 2 -3 0]

True False]

In [8]:

# Cr?ation de vecteurs de valeurs particuliers : #suite arithm?tique a=arange(0,10) b=arange(start=10,stop=0,step=-2) print a print b

#subdivision uniforme de [a,b] de pas h ATTENTION b n'est pas inclus !! c=arange(start=0,stop=1,step=0.1) d=arange(start=0.2,stop=1.2,step=0.3) print c print d c=arange(0,1,0.1) print c

[0 1 2 3 4 5 6 7 8 9] [10 8 6 4 2] [ 0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9] [ 0.2 0.5 0.8 1.1] [ 0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]

In [9]:

# subdivision uniforme de [a,b] ? n ?l?ments # ATTENTION b EST INCLUS CETTE FOIS !!!! a=linspace(start=0,stop=10,num=5) print a

[ 0. 2.5 5. 7.5 10. ]

In [10]:

# vecteur de 1... a=ones(5) print a b=full(5,3.2) print b

[ 1. 1. 1. 1. 1.] [ 3.2 3.2 3.2 3.2 3.2]

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download