logo oujood
🔍

Tableaux zeros, ones et full dans NumPy

Avant de remplir un tableau par calcul, on l'initialise souvent avec des zéros, des uns ou une valeur constante. NumPy fournit des fonctions dédiées pour ça — rapides, lisibles, et paramétrables.

OUJOOD.COM

np.zeros() : tableau rempli de zéros

C'est la fonction d'initialisation la plus courante. On lui passe un tuple décrivant la forme souhaitée — et elle retourne un tableau rempli de 0.0 (float64 par défaut). Utile pour préparer un tableau de résultats avant une boucle de calcul.

  📋 Copier le code

import numpy as np

# Tableau 1D de 5 zéros
t1 = np.zeros(5)
print(t1)        # [0. 0. 0. 0. 0.]
print(t1.dtype)  # float64

# Matrice 3×4 de zéros
t2 = np.zeros((3, 4))
print(t2)
# [[0. 0. 0. 0.]
#  [0. 0. 0. 0.]
#  [0. 0. 0. 0.]]

# Forcer le type entier
t3 = np.zeros((2, 3), dtype=np.int32)
print(t3)
# [[0 0 0]
#  [0 0 0]]
  

np.ones() : tableau rempli de uns

np.ones() fonctionne exactement comme np.zeros(), mais initialise chaque élément à 1. Pratique pour créer des masques binaires, des vecteurs de pondération uniformes, ou simplement multiplier par une constante.

  📋 Copier le code

# Tableau 1D de uns
t1 = np.ones(4)
print(t1)        # [1. 1. 1. 1.]

# Matrice 2×3 de uns en entiers
t2 = np.ones((2, 3), dtype=int)
print(t2)
# [[1 1 1]
#  [1 1 1]]

# Créer un tableau de 5 avec ones × 5
t3 = np.ones(4) * 5
print(t3)  # [5. 5. 5. 5.]

# Même résultat avec np.full()
t4 = np.full(4, 5.0)
print(t4)  # [5. 5. 5. 5.]
  

np.full() : tableau rempli d'une valeur constante

np.full(shape, fill_value) est plus direct quand on veut initialiser avec une valeur arbitraire. Le dtype est déduit de fill_value — un entier donne un tableau entier, un flottant donne un tableau float.

  📋 Copier le code

# Matrice 3×3 remplie de 7
t1 = np.full((3, 3), 7)
print(t1)
# [[7 7 7]
#  [7 7 7]
#  [7 7 7]]

# Remplir avec un flottant
t2 = np.full((2, 4), 3.14)
print(t2)
# [[3.14 3.14 3.14 3.14]
#  [3.14 3.14 3.14 3.14]]

# Variante : créer un tableau de même forme qu'un autre
reference = np.zeros((3, 3))
t3 = np.full_like(reference, 9)
print(t3)
# [[9. 9. 9.]
#  [9. 9. 9.]
#  [9. 9. 9.]]
  

np.empty() : tableau non initialisé

np.empty() alloue la mémoire sans l'initialiser. Les valeurs contenues sont aléatoires — ce sont les résidus de la mémoire précédemment utilisée. Elle est marginalement plus rapide que zeros ou ones, mais ne l'utilisez que si vous êtes certain d'écraser chaque élément avant de le lire.

  📋 Copier le code

# np.empty() — valeurs imprévisibles, à ne lire qu'après écriture
t = np.empty((2, 3))
print(t)  # valeurs quelconques en mémoire

# np.eye() — matrice identité carrée
I = np.eye(4)
print(I)
# [[1. 0. 0. 0.]
#  [0. 1. 0. 0.]
#  [0. 0. 1. 0.]
#  [0. 0. 0. 1.]]

# np.eye() avec décalage de la diagonale
I2 = np.eye(4, k=1)  # diagonale décalée d'un rang vers le haut
print(I2)
# [[0. 1. 0. 0.]
#  [0. 0. 1. 0.]
#  [0. 0. 0. 1.]
#  [0. 0. 0. 0.]]
  

Ces fonctions produisent toutes des tableaux ndarray normaux — vous pouvez ensuite leur appliquer toutes les opérations habituelles : opérations mathématiques, reshape, indexation. Le dtype peut toujours être forcé via le paramètre dtype=.

Par carabde | Mis à jour le 28 avril 2026