Redimensionnement de tableau NumPy

Redimensionnement de tableau

Redimensionner signifie changer la forme du tableau.

La forme du tableau est le nombre d'éléments dans chaque dimension.

Par le redimensionnement, nous pouvons ajouter ou supprimer des dimensions ou changer le nombre d'éléments dans chaque dimension.

Redimensionnement de 1-D à 2-D

Exemple

Convertir le tableau 1D de 12 éléments suivant en tableau 2D.

La dimension la plus externe aura 4 tableaux, chacun contenant 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)

Exécution de l'exemple

Redimensionnement de 1-D à 3-D

Exemple

Convertir le tableau 1D de 12 éléments suivant en tableau 3D.

La dimension la plus externe aura 2 tableaux, chacun contenant 3 tableaux, et chaque tableau contient 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)

Exécution de l'exemple

Pouvons-nous redimensionner en n'importe quelle forme ?

Oui, tant que le nombre d'éléments nécessaires pour le redimensionnement est égal dans les deux formes.

Nous pouvons redimensionner un tableau 1D d'8 éléments en un tableau 2D de 2 lignes et 4 colonnes, mais nous ne pouvons pas le redimensionner en un tableau 2D de 3 lignes et 3 colonnes, car cela nécessiterait 3x3 = 9 éléments.

Exemple

Tentez de convertir un tableau 1D d'8 éléments en un tableau 2D avec 3 éléments par dimension (cela produira une erreur) :

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
newarr = arr.reshape(3, 3)
print(newarr)

Exécution de l'exemple

Retourne-t-il une copie ou une vue ?

Exemple

Vérifier si le tableau retourné 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)

Exécution de l'exemple

L'exemple ci-dessus renvoie le tableau original, donc c'est une vue.

Dimension inconnue

Vous pouvez utiliser une dimension "inconnue".

Cela signifie que vous n'avez pas besoin de spécifier un nombre précis pour une dimension dans la méthode reshape.

Passer -1 En tant que valeur, NumPy calculera ce nombre pour vous.

Exemple

Convertir un tableau 1D de 8 éléments en tableau 3D de 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)

Exécution de l'exemple

Remarque :Nous ne pouvons pas convertir -1 Passé à une dimension ou plusieurs dimensions.

Tableau plat

Le plat de tableau (Flattening the arrays) consiste à convertir un tableau multidimensionnel en tableau 1D.

Nous pouvons utiliser reshape(-1) Pour faire cela.

Exemple

Convertir un tableau en tableau 1D :

import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
newarr = arr.reshape(-1)
print(newarr)

Exécution de l'exemple

Remarque :Il y a de nombreuses fonctions qui peuvent modifier la forme des tableaux numpy flatten, ravel, et peuvent également réarranger les éléments rot90, flip, fliplr, flipud, etc. Ces fonctions appartiennent à la partie intermédiaire à avancée de numpy.