3.4. Quelques opérations courantes

Il existe beaucoup de fonction numpy permettant de faire simplement des opérations sur les tableaux :

Voici quelques exemples. Parfois les fonctions numpy existent sous forme d’une méthode (objet.method).

a = np.random.normal(size=10000)

print(np.max(a))
print(a.max()) # Sous forme d'une méthode

np.sum(a)
np.mean(a)
np.var(a)
np.std(a)
np.min(a)
np.max(a)
4.0351219469370365
4.0351219469370365
4.0351219469370365

Lorsque l’on a un tableau 2D (ou plus), il est possible d’éxecuter l’opération ligne par ligne (ou colonne par colonne).

n_eleves = 10
n_exams = 4

# Tableau 2D avec les notes
# Les notes sont aléatoires !
notes = np.random.rand(n_eleves, n_exams)*20

# On fait la moyenne sur les élèves (axis=0)
moyenne_exams = np.mean(notes, axis=0)
print('Moyenne de chaque examen')
print(moyenne_exams)

moyenne_eleves = np.mean(notes, axis=1)
print('Moyenne de chaque élève')
print(moyenne_eleves)
Moyenne de chaque examen
[ 9.81395276 11.1400401  10.49420259  9.04915144]
Moyenne de chaque élève
[ 7.79374555 11.47850198 11.67461786  7.40069001  8.65054475  9.93937896
 13.09532836  9.81052539 10.24845065 11.15158371]

Opération de tri :

a = np.random.rand(10)
b = np.sort(a)
print(b)
[0.01156812 0.08512015 0.2807883  0.3859941  0.41174778 0.45989627
 0.55805187 0.66253723 0.7195286  0.72064735]

Il est parfois utile de connaître l’indice du maximum ou minimum ou de connaître l’ordre du tri. Cela s’obtient avec les fonctions argmax, argmin ou argsort.

i_max = moyenne_eleves.argmax()

print(f'Le meilleur élève est le numéro {i_max}')
Le meilleur élève est le numéro 6

Autres fonctions utiles:

N = 1000
a = np.random.normal(size=N)
# Différence entre deux éléments
np.diff(a)

# Marche aléatoire
b = np.cumsum(a)