Maison  >  Article  >  développement back-end  >  Comment remodeler un tableau NumPy 4D en tableau 2D ?

Comment remodeler un tableau NumPy 4D en tableau 2D ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-31 18:09:46817parcourir

How to Reshape a 4D NumPy Array to a 2D Array?

Intuition et idée derrière le remodelage d'un tableau 4D en tableau 2D dans NumPy

Dans NumPy, le remodelage de tableaux multidimensionnels nécessite une compréhension des permutations d'axes et des fonction de remodelage. Pour remodeler un tableau 4D en tableau 2D, nous suivons généralement un processus en trois étapes :

  1. Permuter les axes : Réorganisez les dimensions du tableau pour qu'elles correspondent à la forme de sortie souhaitée. Cela se fait à l'aide de fonctions telles que transpose, moveaxis, rollaxis ou swapaxes.
  2. Diviser ou fusionner des axes : Ajustez la dimensionnalité du tableau en créant de nouveaux axes (fractionnement) ou en combinant des axes existants ( fusion).
  3. Remodeler : Utilisez la fonction de remodelage pour ajuster la forme du tableau à la taille de sortie souhaitée.

Exemple

Considérons le tableau 4D suivant :

array([[[[ 0,  0],
         [ 0,  0]],

        [[ 5, 10],
         [15, 20]]],


       [[[ 6, 12],
         [18, 24]],

        [[ 7, 14],
         [21, 28]]]])

Pour le remodeler en (4,4) :

  1. Permutez les axes : Nous voulez que l’ordre des axes soit (0, 1, 3, 2). Ceci peut être réalisé en utilisant la transposition :
a = a.transpose((2, 0, 3, 1))
  1. Axes divisés :N'effectuez aucun fractionnement, car nous avons déjà le nombre correct de dimensions.
  2. Remodeler :Remodeler à la forme souhaitée :
a = a.reshape(4,4)

Résultat :

array([[ 0,  5,  0, 10],
       [ 6,  7, 12, 14],
       [ 0, 15,  0, 20],
       [18, 21, 24, 28]])

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn