Remodelage du tableau NumPy
Remodeler les tableaux
Remodeler signifie changer la forme d'un tableau.
La forme d'un tableau est le nombre d'éléments dans chaque dimension.
En remodelant, nous pouvons ajouter ou supprimer des dimensions ou modifier le nombre d'éléments dans chaque dimension.
Remodeler de 1-D à 2-D
Exemple
Convertissez le tableau 1-D suivant avec 12 éléments en un tableau 2-D.
La dimension la plus externe aura 4 tableaux, chacun avec 3 éléments :
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12])
newarr = arr.reshape(4, 3)
print(newarr)
Remodeler de 1-D à 3-D
Exemple
Convertissez le tableau 1-D suivant avec 12 éléments en un tableau 3-D.
La dimension la plus externe aura 2 tableaux contenant 3 tableaux, chacun avec 2 éléments :
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12])
newarr = arr.reshape(2, 3, 2)
print(newarr)
Pouvons-nous remodeler dans n'importe quelle forme ?
Oui, tant que les éléments nécessaires au remodelage sont égaux dans les deux formes.
Nous pouvons remodeler un tableau 1D à 8 éléments en 4 éléments dans un tableau 2D à 2 lignes, mais nous ne pouvons pas le remodeler en un tableau 2D à 3 éléments et 3 lignes car cela nécessiterait 3x3 = 9 éléments.
Exemple
Essayez de convertir un tableau 1D avec 8 éléments en un tableau 2D avec 3 éléments dans chaque dimension (cela générera une erreur):
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
newarr = arr.reshape(3, 3)
print(newarr)
Copier ou afficher ?
Exemple
Vérifiez si le tableau renvoyé est une copie ou une vue :
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
print(arr.reshape(2, 4).base)
L'exemple ci-dessus renvoie le tableau d'origine, il s'agit donc d'une vue.
Dimension inconnue
Vous êtes autorisé à avoir une dimension "inconnue".
Cela signifie que vous n'avez pas à spécifier un nombre exact pour l'une des dimensions dans la méthode de remodelage.
Passez -1
comme valeur et NumPy calculera ce nombre pour vous.
Exemple
Convertissez un tableau 1D avec 8 éléments en tableau 3D avec 2x2 éléments :
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
newarr = arr.reshape(2, 2, -1)
print(newarr)
Remarque : Nous ne pouvons pas passer -1
à plus d'une dimension.
Aplatir les tableaux
Aplatir un tableau signifie convertir un tableau multidimensionnel en un tableau 1D.
Nous pouvons utiliser reshape(-1)
pour le faire.
Exemple
Convertissez le tableau en tableau 1D :
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
newarr
= arr.reshape(-1)
print(newarr)
Remarque : Il existe de nombreuses fonctions pour modifier les formes des tableaux dans numpy flatten
, ravel
ainsi que pour réorganiser les éléments rot90
, flip
, fliplr
, flipud
etc. Celles-ci relèvent de la section Intermédiaire à Avancé de numpy.