Adloun

mathématiques approfondies (ECG 1re année) · Chapitre 11 · Application directe du cours

Créer et lire un tableau

Informatique et algorithmique · Tableaux numpy · niveau 1 (application)

Énoncé

Que produisent np.zeros([2, 3]), np.eye(3), np.arange(0, 10, 2) et np.linspace(0, 1, 5) ? Préciser en particulier la différence entre les deux dernières, et ce que renvoie np.shape.

Corrigé

Ce qu'on montre. Les quatre constructeurs de tableaux du programme, et la distinction entre « fixer le pas » et « fixer le nombre de points ».

Le programme.

import numpy as np

A = np.zeros([2, 3])
I = np.eye(3)
u = np.arange(0, 10, 2)
v = np.linspace(0, 1, 5)

print(np.shape(A), np.shape(I), np.shape(u), np.shape(v))
print(u)
print(v)

Ce que chacun produit.

  • np.zeros([2, 3]) : un tableau de lignes et colonnes rempli de zéros. np.shape renvoie le couple (2, 3).
  • np.eye(3) : la matrice identité , de forme (3, 3) — des sur la diagonale, des ailleurs.
  • np.arange(0, 10, 2) : le tableau [0 2 4 6 8], de forme (5,). On donne le pas (), et la borne haute est exclue : n'y figure pas.
  • np.linspace(0, 1, 5) : le tableau [0. 0.25 0.5 0.75 1.], de forme (5,). On donne le nombre de points (), et les deux bornes sont incluses ; le pas en est déduit.

La différence, en une phrase. arange fixe le pas et exclut la borne haute ; linspace fixe le nombre de points et inclut les deux bornes. Pour tracer une courbe sur , c'est linspace qu'il faut : elle garantit que le dernier point est bien .

Ce que renvoie np.shape. Un couple pour un tableau à deux dimensions — (2, 3) signifie lignes et colonnes — et un couple à un seul élément pour un tableau simple, noté (5,). C'est ainsi qu'on récupère la taille d'une matrice : np.shape(M)[0] en donne le nombre de lignes.

Point délicat. np.zeros(2, 3) est une erreur : les dimensions se passent dans une seule liste, np.zeros([2, 3]).

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre