Outils pour utilisateurs

Outils du site


prog:python:numpy

Mini tutoriel de la bibliothèque NumPy

Un tuto complet se trouve sur le site officiel
Un autre très bon tuto ici
En français un tuto plutôt orienté maths ou bien physique

NumPy est une bibliothèque dédiée à la manipulation de tableaux, vecteurs et matrices.
Le principal objet que NumPy met à disposition est le tableau, de contenu homogène, de dimension n.
Contrairement aux listes, cette structure n'est pas dynamique.
Un tableau est indexé par un tuple d'entiers non négatifs.
Les types disponibles sont les types standard de Python et de nouveaux types fournis par la bibliothèque (par exemple numpy.int32, numpy.int16, ou numpy.float64).

Les tableaux constituent la classe ndarray (alias array) dont les principaux attributs sont :

  • ndarray.ndim : nombre d'axes (dimensions) du tableau. Ex. pour une matrice, ndim = 2
  • ndarray.shape : dimensions du tableau. Ex. pour une matrice (n,m) shape est le tuple (n,m)
  • ndarray.size : nombre total d'éléments Ex. pour une matrice (n,m), c'est n x m
  • ndarray.dtype : le type des éléments du tableau (Python standard et spécifiques à NumPy)
  • ndarray.itemsize : la taille en octets d'un élément
  • ndarray.data permet l'accès brut aux données

Créer un tableau :

  • depuis une liste : a = np.array([2,3,4]) ou en dimension supérieure b = np.array([(1.5,2,3), (4,5,6)])
  • vide ou rempli de 0 ou de 1 : np.empty((2,3)), np.zeros((3, 4)), np.ones((2,3,4))
    • on peut préciser le type np.empty((2,3),dtype=np.float128)
  • rempli avec un itérable : np.arange(10,30,5) (pas 5) ou np.linspace(0,2,9) (9 valeurs en tout)

Accéder aux éléments :

  • Avec un indice entre crochets : toto[0]
  • A partir de 2 dimensions, on peut écrire toto[i,j] ou toto[i][j]
  • On peut extraire un sous-tableau avec un slice sur les indices
    • Mais attention ! une modification du sous-tableau se fait aussi sur le tableau
a=np.array([1, 2, 3, 4, 5])
b=a[1:3]
b[1]=0
print(a)

Produit ce résultat. Étonnant, non ?
array([1, 2, 0, 4, 5])

Effectuer des calculs :

Dans le cas général, les calculs sur les tableaux sont effectués élément par élément.
Par exemple :

import numpy as np
a,b = np.arange(1.,4.), np.arange(2.,5.)
print(a*b)

Produit comme résultat :
array([ 2., 6., 12.])

Autres fonctions :

  • np.sort(tab)
  • np.concatenate((a, b))
  • np.max(tab)
  • np.min(tab)
  • np.sum(tab)
  • np.mean(tab)
  • np.std(tab)
  • np.prod(tab)

Algèbre linéaire :

  • np.transpose(a) # Transposée de a
  • np.linalg.inv(a) # Inverse de a
  • u = np.eye(3) # Matrice identité (ici 3×3)
  • mat1 @ mat2 # Produit matriciel (ou produit scalaire en dimension 1)
  • mat1.dot(mat2) # Même chose
  • np.trace(a) # Trace
  • np.linalg.eig(j) # Valeurs propres
prog/python/numpy.txt · Dernière modification : 2020/04/19 12:56 de jbpuel