Points d’implémentation avec numpy

Quelques écritures efficaces et non efficaces avec numpy.

accéder à un élément en particulier

import timeit

import numpy

mat = numpy.zeros((5, 5))
for i in range(mat.shape[0]):
    for j in range(mat.shape[1]):
        mat[i, j] = i * 10 + j
mat
array([[ 0.,  1.,  2.,  3.,  4.],
       [10., 11., 12., 13., 14.],
       [20., 21., 22., 23., 24.],
       [30., 31., 32., 33., 34.],
       [40., 41., 42., 43., 44.]])
mat[2, 3], mat[2][3]
(23.0, 23.0)
timeit.timeit("mat[2, 3]", globals=globals(), number=100)
1.330699979007477e-05
timeit.timeit("mat[2][3]", globals=globals(), number=100)
2.441400010866346e-05

Les deux écritures ont l’air identique puisqu’elle retourne le même résultat. Néanmoins, mat[2][3] crée un tableau temporaire puis extrait un élément. Les éléments ne sont pas recopiés mais un objet intermédiaire est créé.

mat[2]
array([20., 21., 22., 23., 24.])

Total running time of the script: (0 minutes 0.003 seconds)

Gallery generated by Sphinx-Gallery