logo

numpy.reshape() en Python

La fonction numpy.reshape() est disponible dans le package NumPy. Comme son nom l'indique, reshape signifie « changements de forme ». La fonction numpy.reshape() nous aide à donner une nouvelle forme à un tableau sans modifier ses données.

Parfois, nous devons remodeler les données de manière large à longue. Donc, dans cette situation, nous devons remodeler le tableau en utilisant la fonction reshape().

Syntaxe

 numpy.reshape(arr, new_shape, order='C') 

Paramètres

Il existe les paramètres suivants de la fonction reshape() :

1) arr : array_like

C'est un ndarray. C'est le tableau source que nous voulons remodeler. Ce paramètre est essentiel et joue un rôle vital dans la fonction numpy.reshape().

télécharger des vidéos YouTube VLC

2) new_shape : int ou tuple d'entiers

La forme dans laquelle nous voulons convertir notre tableau d'origine doit être compatible avec le tableau d'origine. S'il s'agit d'un nombre entier, le résultat sera un tableau 1D de cette longueur. Une dimension de forme peut être -1. Ici, la valeur est approximée par la longueur du tableau et les dimensions restantes.

3) ordre : {'C', 'F', 'A'}, facultatif

Le paramètre d’ordre de ces index joue un rôle crucial dans la fonction reshape(). Ces ordres d'index sont utilisés pour lire les éléments du tableau source et placer les éléments dans le tableau remodelé en utilisant cet ordre d'index.

  1. L'ordre d'index « C » signifie lire/écrire les éléments qui utilisent un ordre d'index de type C où le dernier index d'axe change le plus rapidement, pour revenir au premier index d'axe changeant le plus lentement.
  2. L'ordre d'index 'F' signifie lire/écrire les éléments qui utilisent l'ordre d'index de type Fortran, où l'index du dernier axe change le plus lentement et le premier index de l'axe change le plus rapidement.
  3. L'ordre « C » et « F » ne prennent aucune importance dans la disposition de la mémoire du tableau sous-jacent et se réfèrent uniquement à l'ordre d'indexation.
  4. L'ordre d'index 'A' signifie lire/écrire les éléments dans un ordre d'index de type Fortran, lorsque arr est contigu en mémoire, sinon utiliser l'ordre de type C.

Retour

Cette fonction renvoie un ndarray. Il s'agit d'un nouvel objet de vue si possible ; sinon, ce sera une copie. Il n'y a aucune garantie quant à la disposition de la mémoire du tableau renvoyé.

Exemple 1 : Ordre d'index de type C

 import numpy as np x=np.arange(12) y=np.reshape(x, (4,3)) x y 

Sortir:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) 

Dans le code ci-dessus

  • Nous avons importé numpy avec le nom d'alias np.
  • Nous avons créé un tableau 'a' en utilisant la fonction np.arrange().
  • Nous avons déclaré la variable 'y' et attribué la valeur renvoyée par la fonction np.reshape().
  • Nous avons passé le tableau 'x' et la forme dans la fonction.
  • Enfin, nous avons essayé d'imprimer la valeur de arr.

Dans le résultat, le tableau a été représenté par trois lignes et quatre colonnes.

Exemple 2 : Équivalent à C ravel puis C reshape

 import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x),(3,4)) x y 

La fonction ravel() est utilisée pour créer un tableau aplati contigu. Un tableau unidimensionnel contenant les éléments de l'entrée est renvoyé. Une copie n'est effectuée que lorsque cela est nécessaire.

pd.merge

Sortir:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) 

Exemple 3 : Ordre d'index de type Fortran

 import numpy as np x=np.arange(12) y=np.reshape(x, (4, 3), order='F') x y 

Sortir:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 4, 8], [ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11]]) 

Dans le code ci-dessus

  • Nous avons importé numpy avec le nom d'alias np.
  • Nous avons créé un tableau 'a' en utilisant la fonction np.arrange().
  • Nous avons déclaré la variable 'y' et attribué la valeur renvoyée par la fonction np.reshape().
  • Nous avons transmis le tableau 'x' ainsi que la forme et l'ordre d'index de type Fortran dans la fonction.
  • Enfin, nous avons essayé d'imprimer la valeur de arr.

Dans le résultat, le tableau a été représenté par quatre lignes et trois colonnes.

Exemple 4 : Ordre d'index de type Fortran

 import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x, order='F'), (4, 3), order='F') x y 

Sortir:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 4, 8], [ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11]]) 

Exemple 5 : La valeur non spécifiée est déduite être 2

 import numpy as np x=np.arange(12) y=np.reshape(x, (2, -1)) x y 

Dans le code ci-dessus

  • Nous avons importé numpy avec le nom d'alias np.
  • Nous avons créé un tableau 'a' en utilisant la fonction np.arrange().
  • Nous avons déclaré la variable 'y' et attribué la valeur renvoyée par la fonction np.reshape().
  • Nous avons passé le tableau 'x' et la forme (valeur non spécifiée) dans la fonction.
  • Enfin, nous avons essayé d'imprimer la valeur de arr.

Dans le résultat, le tableau a été représenté sous forme de deux lignes et cinq colonnes.

Sortir:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10, 11]])