M1 Info – exemples de manip de tableaux avec numpy
Transcription
M1 Info – exemples de manip de tableaux avec numpy
M1 Info – exemples de manip de tableaux avec numpy Voici quelques exemples de syntaxe d’utilisation des tableaux numpy. Ceci ne remplace absolument pas les documentations officielles. Ceci ne sert qu’à illustrer quelques syntaxes basiques pour l’utilisation de tableaux avancés sous Python (via la bibliothèque numpy). Les commentaires du code sont donnés à la volée... — print donne une version sympathique de visualisation du contenu. Le seul nom de la variable indique son contenu mais aussi sa structure. — shape permet de récupérer le dimensionnement du tableau (dimensions de la matrice) — L’accès aux éléments se fait par indication des rangs (dans chaque dimension) entre crochets, séparées par des virgules. Lorsqu’on va au delà des dimensions du tableau, l’erreur out of range apparaı̂t. — le symbole : permet de définir une plage d’indices (exemples ci-après dans le cas de tableau 1D) : 1. a[ :7] indique les indices de 0 à 6 du tableau a 2. a[0 :2] indique les indices de 0 à 1 du tableau a 3. a[1 :] indique les indices 1 à la fin du tableau a — Dans le cas des tableaux de dimension supérieure à 2, chaque dimension est séparée des autres par une virgule, et on accède aux mêmes raccourcis qu’en cas d’une dimension — Dans les tableaux de dimension supérieure à deux, on peut accéder directement à une colonne, ou à une ligne. — Accéder (lecture ou écriture) à un élément se fait par spécification de l’indice de cet élément sous chaque dimension, indices séparés par des virgules. — On peut additionner des tableaux entre eux, les soustraire, multiplier, diviser, etc., élément par élément. — On peut obtenir le minimum, le max, etc., des valeurs d’un tableau. — On peut additionner, multiplier, moyenner, etc., les valeurs d’un tableau. — On peut initialiser un tableau avec des 0 ou des 1 (tout en choisissant le type). >>> from numpy import * >>> a = array([[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]) >>> print a [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] >>> a array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) >>> a.shape (3, 4) >>> a.shape[0] 3 >>> a.shape[1] 4 >>> >>> a[0,0] 0 >>> a[4,0] Traceback (innermost last): File "<stdin>", line 1, in <module> IndexError: index (4) out of range (0<=index<3) in dimension 0 >>> a[2,1] 9 >>> a[2:3] Université Aix-Marseille – 2013-2014 M1 Info – exemples de manip de tableaux avec numpy array([[ 8, 9, 10, 11]]) >>> a array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) >>> print a [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] >>> a[:1, 2:3] array([[2]]) >>> print a[1:2, 1:3] [[5 6]] >>> a[:1, 2:3] array([[2]]) >>> print a[:1, 2:3] [[2]] >>> print a[1:2, 1:3] [[5 6]] >>> a[1:2, 1:3] array([[5, 6]]) >>> >>> a[:1] array([[0, 1, 2, 3]]) >>> a[1:3] array([[ 4, 5, 6, 7], [ 8, 9, 10, 11]]) >>> a[1:] array([[ 4, 5, 6, 7], [ 8, 9, 10, 11]]) >>> a[0:] array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) >>> a[2:] array([[ 8, 9, 10, 11]]) >>> a[1,1] = 54 >>> print a >>> a[2] array([ 8, 9, 10, 11]) >>> a[2] = [1,01,10,11] >>> a array([[ 0, 1, 2, 3], [ 4, 54, 6, 7], [ 1, 1, 10, 11]]) [[ 0 1 2 3] [ 4 54 6 7] [ 8 9 10 11]] >>> f = array([1,2,3,4]) >>> g = array([100,200,300,400]) >>> f+g array([101, 202, 303, 404]) >>> f-g array([ -99, -198, -297, -396]) >>> f*g array([ 100, 400, 900, 1600]) >>> f/g Université Aix-Marseille – 2013-2014 M1 Info – exemples de manip de tableaux avec numpy array([0, 0, 0, 0]) >>> g/f array([100, 100, 100, 100]) >>>f.max() 4 >>> g.min() 100 >>> f.sum() 10 >>> c = zeros(7) >>> c array([ 0., 0., 0., 0., 0., >>> d = ones(6) >>> d array([ 1., 1., 1., 1., 1., 0., 0.]) 1.]) Bref, il existe de très nombreuses opérations de manipulation de tableaux n-dimensionnels en Python (via les bibliothèques scipy et numpy). Pour plus d’information : http://www.scipy.org/Tentative NumPy Tutorial Université Aix-Marseille – 2013-2014