Maison >développement back-end >Tutoriel Python >Quelle est la signification de -1 dans la fonction Reshape de NumPy ?
Comprendre le rôle de -1 dans NumPy Reshape
Dans NumPy, reshape est une fonction puissante qui nous permet de transformer la forme d'un tableau tout en conservant les données sous-jacentes. Lors de l'utilisation de reshape, nous pouvons spécifier la nouvelle forme du tableau sous la forme d'un tuple de dimensions, mais parfois, nous pouvons rencontrer la valeur énigmatique de -1.
Démêler la signification de -1
Le critère pour remodeler un tableau est que la nouvelle forme doit être compatible avec la forme originale. Dans ce contexte, -1 sert d'espace réservé pour une dimension inconnue. Lorsque nous spécifions une dimension comme -1, NumPy détermine la valeur réelle de cette dimension en fonction de la longueur totale du tableau et des autres dimensions spécifiées.
Exemples de remodelage avec -1
Considérons un exemple pour illustrer comment -1 fonctionne dans le remodelage.
<code class="python">import numpy as np z = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) print(z.shape) # (3, 4)</code>
Remodelage en (12,)
<code class="python">reshaped_z = z.reshape(-1) print(reshaped_z.shape) # (12,)</code>
Dans ce Dans ce cas, la nouvelle forme est spécifiée comme (-1,), indiquant que nous voulons un tableau 1D. NumPy calcule la dimension inconnue comme 12, ce qui donne un tableau 1D contenant tous les éléments du tableau d'origine.
Remodelage en (-1, 1)
<code class="python">reshaped_z = z.reshape(-1, 1) print(reshaped_z.shape) # (12, 1)</code>
Ici, NumPy interprète -1 comme dimension de ligne inconnue, tandis que nous spécifions la dimension de colonne comme 1. Le résultat est un tableau 2D avec 12 lignes et 1 colonne.
Remodelage en (1, - 1)
<code class="python">reshaped_z = z.reshape(1, -1) print(reshaped_z.shape) # (1, 12)</code>
Dans ce scénario, nous spécifions le nombre de lignes comme 1, laissant le nombre de colonnes inconnu. NumPy détermine la dimension de la colonne comme étant 12, ce qui donne un tableau 2D avec 1 ligne et 12 colonnes.
Utilisation de -1 pour des fonctionnalités uniques ou des échantillons
Il est important de noter que NumPy recommande d'utiliser (-1, 1) pour remodeler les données avec une seule fonctionnalité et (1, -1) pour les données contenant un seul échantillon.
<code class="python"># Reshape for a single feature single_feature = np.reshape(z, (-1, 1)) # Reshape for a single sample single_sample = np.reshape(z, (1, -1))</code>
Limitations de -1
Bien que -1 offre une flexibilité de remodelage, il ne peut pas être utilisé pour spécifier les deux dimensions comme inconnues. Tenter de le faire déclenchera une ValueError.
<code class="python"># Attempting to set both dimensions as -1 invalid_reshape = z.reshape(-1, -1) # ValueError: can only specify one unknown dimension</code>
Comprendre le rôle de -1 dans le remodelage NumPy est crucial pour remodeler des tableaux de dimensions inconnues, nous permettant de manipuler efficacement les données tout en préservant leur intégrité.
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!