HOWTO · NumPy
Comment inverser un tableau NumPy en Python
Il existe trois méthodes principales qui peuvent être utilisées pour inverser un tableau NumPy en Python, la méthode Basic Slicing, la fonction numpy.flipud() et la fonction numpy.flip().
Sur cette page
Pour inverser un tableau NumPy en Python, utilisez le découpage de base avec [::-1], numpy.flipud() ou numpy.flip(). Le découpage offre une syntaxe concise pour inverser un tableau unidimensionnel et renvoie une vue. numpy.flipud() inverse les lignes selon l’axe 0, tandis que numpy.flip() permet d’inverser un axe choisi ou tous les axes. Les exemples ci-dessous montrent la différence entre leurs résultats.
Inverser un tableau NumPy avec le découpage de base en Python
Pour un tableau unidimensionnel, array[::-1] sélectionne les éléments de la fin au début, avec un pas de -1. Exécutez cet exemple :
Le code et les libellés ou sorties affichés dans cette section restent en anglais.
import numpy as np
array = np.array([1, 2, 3, 4, 5])
reverse = array[::-1]
print(reverse)
[5 4 3 2 1]
La tranche est une vue qui fait référence aux mêmes données que array ; elle ne crée pas de copie indépendante. Par conséquent, affecter une valeur par l’intermédiaire de reverse modifie aussi l’élément correspondant dans array. Si les valeurs d’origine doivent rester indépendantes, créez une copie avec array[::-1].copy(). Cette méthode convient pour inverser simplement un tableau unidimensionnel lorsque le comportement d’une vue est acceptable. Pour un tableau multidimensionnel, la même expression inverse uniquement son premier axe ; utilisez une fonction qui gère les axes si vous devez préciser quelle dimension modifier.
Inverser un tableau NumPy avec la fonction numpy.flipud() en Python
numpy.flipud() inverse un tableau selon l’axe 0. Pour un tableau unidimensionnel, l’axe 0 est son seul axe : les valeurs apparaissent donc dans l’ordre inverse. Pour un tableau bidimensionnel, l’axe 0 correspond aux lignes : leur ordre est inversé, mais les valeurs de chaque ligne restent dans le même ordre. La documentation NumPy de numpy.flipud() décrit cette fonction.
Le code et les libellés ou sorties affichés dans cette section restent en anglais.
import numpy as np
array = np.array([[1, 2], [3, 4]])
print(np.flipud(array))
[[3 4]
[1 2]]
Choisissez numpy.flipud() lorsque l’opération voulue consiste à inverser l’axe 0, notamment pour inverser l’ordre des lignes d’une matrice. Pour un tableau unidimensionnel, cette fonction constitue une alternative lisible au découpage ; pour inverser un autre axe, utilisez numpy.flip() en indiquant explicitement cet axe.
Inverser un tableau NumPy avec la fonction numpy.flip() en Python
numpy.flip() inverse les éléments selon l’axe indiqué. Pour un tableau bidimensionnel, axis=1 inverse les colonnes de chaque ligne. Si axis est omis, sa valeur par défaut est None, ce qui inverse tous les axes. L’ordre des lignes et celui des valeurs au sein de chaque ligne changent alors ; le tableau n’est pas aplati en une seule séquence. Consultez la documentation NumPy de numpy.flip().
Le code et les libellés ou sorties affichés dans cette section restent en anglais.
import numpy as np
array = np.array([[1, 2], [3, 4]])
print(np.flip(array, axis=1))
print(np.flip(array))
[[2 1]
[4 3]]
[[4 3]
[2 1]]
Utilisez numpy.flip(array, axis=0) pour inverser les lignes, axis=1 pour inverser les colonnes d’un tableau bidimensionnel, ou omettez axis pour inverser toutes les dimensions. Pour un tableau unidimensionnel, omettre axis revient à inverser son seul axe. En pratique, choisissez le découpage pour une expression courte sur un tableau unidimensionnel, numpy.flipud() lorsque l’axe 0 doit être inversé, et numpy.flip() lorsque vous devez préciser un axe ou inverser tous les axes. Ces opérations modifient l’ordre des éléments le long des dimensions ; elles ne trient pas les valeurs et ne remodèlent pas le tableau.