Vous aurez rarement besoin de boucles pour les opérations de numpy.
Vous pouvez créer un tableau non initialisé et de céder à toutes les entrées à la fois:
>>> a = numpy.empty((3,3,))
>>> a[:] = numpy.NAN
>>> a
array([[ NaN, NaN, NaN],
[ NaN, NaN, NaN],
[ NaN, NaN, NaN]])
J'ai chronométré les alternatives a[:] = numpy.nan
d'ici et d' a.fill(numpy.nan)
affichés par Blaenk:
$ python -mtimeit "import numpy as np; a = np.empty((100,100));" "a.fill(np.nan)"
10000 loops, best of 3: 54.3 usec per loop
$ python -mtimeit "import numpy as np; a = np.empty((100,100));" "a[:] = np.nan"
10000 loops, best of 3: 88.8 usec per loop
Les horaires montrent une préférence pour l' ndarray.fill(..)
comme l'alternative plus rapide. Otoh, que, j'aime numpy la commodité de mise en œuvre de l'endroit où vous pouvez affecter des valeurs à l'ensemble de tranches à la fois, le code de l'intention est très claire.