Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

contenu de ce notebook (sauter si déjà acquis)

la taille (en nombre d’octets) des éléments d’un numpy.ndarray existant est constante
une modification peut causer une conversion de la valeur ou une erreur

calculs de temps d’exécution avec %timeit

rappels

tableaux multi-dimensionnels numpy


création d’un tableau multi-dimensionnel

le code

[[ 1  2  3  4  5]
 [ 6  7  8  9 10]
 [11 12 13 14 15]
 [16 17 18 19 20]]
<class 'numpy.ndarray'>

type et taille mémoire des éléments du tableau

(dtype('int64'), 8, 48)

taille, forme, dimension du tableau

(2, 3)
6 6
2 2

création d’un tableau avec le type des éléments

-128 127
int64
array([[-128, -78, -32], [ 17, 5, 127]], dtype=int8)
Python integer -128 out of bounds for uint8

exercice

  1. créez un tableau pour stocker la matrice ci-dessous avec le plus petit type entier non signé

l = [[  0,   8,  34,   8],
     [255,  61, 128, 254]]

modifier le type des éléments d’un tableau existant

int64
[[   0    8   34    8]
 [  -1   61 -128   -2]]
[[  0   8  34   8]
 [255  61 128 254]]

numpy calcule à taille constante

[-1  2  3]
[-100  200  300]
int64
[-1  2  3]
[-100  -56   44]
int8

autres constructeurs de numpy.ndarray


tableau de zéros numpy.zeros

array([[0., 0., 0., 0., 0.], [0., 0., 0., 0., 0.], [0., 0., 0., 0., 0.], [0., 0., 0., 0., 0.]])
array([[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]], dtype=uint64)

tableau non-initialisé numpy.empty

exercice

  1. créez un tableau de forme (3, 5) de valeurs non-initialisées
    de type entiers signés sur 8 bits

  2. affichez-le

  3. que contient-il ?

tableau de valeurs régulièrement espacées

array([0, 1, 2, 3, 4])
<Figure size 640x480 with 1 Axes>
<Figure size 640x480 with 1 Axes>

tableaux de valeurs aléatoires

générateur de valeurs aléatoires entières

16
array([[[15, 10, 17, 14, 17], [14, 14, 11, 18, 19], [19, 12, 12, 10, 10]], [[19, 19, 19, 17, 12], [12, 17, 12, 11, 13], [10, 16, 18, 19, 16]]])

générateur de valeurs aléatoires réelles

0.7167546350831374
array([[[-2.53238214e+00], [-1.43281248e-01], [ 8.24074387e-01]], [[ 1.35471747e+00], [-1.04026258e+00], [ 2.51162235e-03]]])

exercice génération aléatoire et affichage couleur

avec la fonction numpy.random.randint dont l’aide est obtenue en tapant

np.random.randint?
  1. construisez une image de 10 x 10 pixels en format RBG
    i.e. chaque pixel est composé de 3 valeurs entières entre 0 et 255 inclus

  2. affichez l’image avec plt.imshow

comparaison des temps de création tableaux

(avancé)

7.23 ns ± 0.883 ns per loop (mean ± std. dev. of 7 runs, 100,000,000 loops each)
7 ns ± 0.0186 ns per loop (mean ± std. dev. of 7 runs, 10,000 loops each)
19.2 ns ± 0.299 ns per loop (mean ± std. dev. of 7 runs, 10,000,000 loops each)

exercice

comparez les temps d’exécution de