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

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

Susan Sarandon
Susan Sarandonoriginal
2024-11-02 05:27:29321parcourir

How can I reshape a 4D NumPy array into a 2D array?

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

Comprendre le défi

Remodeler des tableaux multidimensionnels dans NumPy peut être délicat, surtout lorsqu'il s'agit de dimensions élevées comme les tableaux 4D. Le défi consiste à comprendre comment manipuler les axes du tableau pour obtenir la forme souhaitée sans altérer les valeurs des données.

Approche générale du remodelage

La stratégie générale pour le remodelage des tableaux à 2 dimensions (nd) implique un processus en deux étapes :

  1. Permuter les axes : réorganisez les axes du tableau pour les aligner sur la forme souhaitée. Ceci peut être réalisé en utilisant des fonctions comme numpy.transpose() ou numpy.rollaxis().
  2. Reshape : utilisez numpy.reshape() pour modifier la forme du tableau en le divisant ou en le divisant. fusion des axes.

Cas spécifique : remodelage 4D vers 2D

Dans l'exemple donné, le tableau d'entrée 4D est remodelé en un tableau 2D. En utilisant l'approche générale décrite ci-dessus :

  1. Permuter les axes : Pour aligner les dimensions, les axes sont réorganisés comme suit : (2, 0, 3, 1). Cela signifie que la deuxième dimension devient la première, la première devient la deuxième, la troisième devient la troisième et la quatrième devient la quatrième.
  2. Remodeler : Avec les axes permutés, le tableau est remodelé à la forme souhaitée (4, 4) à l'aide de reshape().

Key Insight

L'idée clé est que le processus de remodelage implique de décomposer le tableau en blocs plus petits, puis en le réassemblant dans la forme souhaitée. En manipulant soigneusement les axes et en utilisant des opérations de remodelage appropriées, nous pouvons transformer efficacement des tableaux multidimensionnels.

Exemples supplémentaires

Pour illustrer la généralisabilité de cette approche, considérons l'exemple suivant :

Exemple : Tableau 3D vers matrice 2D

Considérons un tableau 3D de dimensions (2, 2, 3). Pour le remodeler en une matrice 2D de dimension (4, 3), les axes peuvent être permutés comme (1, 0, 2) puis remodelés comme suit :

<code class="python">>>> import numpy as np

>>> arr = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])

>>> permuted = np.transpose(arr, (1, 0, 2))

>>> reshaped = permuted.reshape(4, 3)

>>> print(reshaped)
[[1 2 3]
 [4 5 6]
 [7 8 9]
 [10 11 12]]</code>

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