API · NumPy

Python NumPy numpy.shape() Fonction

Utilisez numpy.shape() pour obtenir les dimensions d’un tableau sous forme de tuple, ou lisez-les à partir de son attribut .shape.

Sur cette page

Utilisez la fonction NumPy numpy.shape() pour connaître les dimensions d’un tableau. Elle renvoie un tuple d’entiers, chaque valeur indiquant la longueur d’une dimension. Par exemple, (5, 3) signifie cinq lignes et trois colonnes. Le tuple décrit la forme actuelle de l’entrée ; son immutabilité ne détermine pas si le tableau lui-même peut être remodelé.

Syntaxe de numpy.shape()

Appelez numpy.shape(a) avec la valeur dont vous souhaitez examiner les dimensions. L’argument a est obligatoire et peut être un tableau NumPy ou une autre valeur de type tableau, comme une séquence imbriquée. La fonction renvoie un tuple contenant, dans l’ordre, un entier par dimension. Une entrée unidimensionnelle donne une valeur dans le tuple ; une entrée bidimensionnelle donne les longueurs des lignes et des colonnes ; les entrées de dimension supérieure ajoutent une longueur pour chaque axe supplémentaire.

Exemples de numpy.shape()

L’exemple suivant crée un tableau NumPy bidimensionnel et affiche les dimensions renvoyées par numpy.shape().

import numpy as np

array = np.array([[11, 12, 5], [15, 6, 10], [10, 8, 12], [12, 15, 8], [34, 78, 90]])
print(np.shape(array))
(5, 3)

La première valeur du tuple décrit le premier axe, la deuxième valeur décrit le deuxième axe, et ainsi de suite. Pour un tableau bidimensionnel, ces axes correspondent aux lignes et aux colonnes. Le résultat permet ainsi de vérifier l’organisation des données avant de sélectionner un axe ou de transmettre le tableau à une autre opération.

Pour un tableau unidimensionnel ne contenant aucune valeur, la forme est (0,). Un tableau unidimensionnel contenant [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] a pour forme (20,). Un tableau de cinq lignes et trois colonnes a pour forme (5, 3), tandis qu’un tableau tridimensionnel composé de trois groupes de deux lignes contenant chacun trois valeurs a pour forme (3, 2, 3). Ces tuples indiquent, dans l’ordre, les longueurs des axes ; ils ne décrivent pas les valeurs stockées dans le tableau. La virgule dans le tuple à un seul élément (20,) est une règle de syntaxe Python qui le distingue d’un entier entre parenthèses.

Cet exemple Python crée un tableau vide et récupère sa forme. Il n’affiche rien, car il affecte la forme à une variable sans appeler print().

import numpy as np

empty_array = np.array([])
empty_shape = np.shape(empty_array)

La fonction renvoie les longueurs correspondant aux dimensions de l’entrée. Si le résultat diffère de vos attentes, vérifiez la construction de l’entrée et l’ordre de ses séquences imbriquées. Par exemple, pour un tableau bidimensionnel régulier, la première valeur de la forme indique le nombre de lignes et la deuxième, le nombre de colonnes. NumPy décrit la structure présente dans les données au lieu de déduire des étiquettes de lignes ou de colonnes supposées. Avec des données imbriquées irrégulières, le comportement peut dépendre de la version de NumPy et des règles de conversion ; utilisez donc un tableau régulier lorsque vous avez besoin de longueurs d’axes cohérentes.

Utiliser l’attribut .shape

Un tableau NumPy expose également ses dimensions au moyen de l’attribut .shape. Pour un tableau a, a.shape fournit le même tuple que numpy.shape(a). Utilisez la fonction lorsque vous souhaitez transmettre une valeur à une opération générale ; utilisez l’attribut lorsque vous avez déjà un tableau et voulez consulter directement ses dimensions. L’attribut s’utilise sans parenthèses, tandis que numpy.shape() est un appel de fonction.

Par exemple, a.shape renvoie (5, 3) pour un tableau de cinq lignes et trois colonnes, tout comme numpy.shape(a). Aucune de ces deux formes ne modifie le tableau : elles en indiquent les dimensions. Si vous remodelez un tableau, l’une ou l’autre renverra ensuite ses dimensions mises à jour. Cette distinction est utile pour déboguer la préparation des données : examinez la forme avant une opération pour vérifier le nombre et l’ordre des axes attendus, puis utilisez le tuple obtenu pour repérer la dimension à examiner. numpy.shape() est une fonction, tandis que .shape est un attribut du tableau.