Maison >développement back-end >Tutoriel Python >Quelle est la signification et l'utilisation de la valeur \'-1\' dans la fonction Reshape de NumPy ?

Quelle est la signification et l'utilisation de la valeur \'-1\' dans la fonction Reshape de NumPy ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-20 22:13:30579parcourir

What is the Meaning and Usage of the '-1' Value in NumPy's Reshape Function?

Comprendre la valeur « -1 » dans la fonction Reshape de NumPy

La fonction reshape de NumPy vous permet de transformer la forme d'un tableau multidimensionnel. La valeur "-1" est couramment utilisée comme espace réservé lors de la spécification de la nouvelle forme, mais son interprétation diffère de la signification typique de array[-1] comme dernier élément.

Dans le contexte du reshape, " -1" indique une dimension inconnue. La fonction déterminera automatiquement cette dimension en fonction de la forme existante du tableau et des autres dimensions spécifiées. Le principe clé en jeu est que la nouvelle forme doit être compatible avec la forme d'origine.

Pour mieux comprendre le fonctionnement de "-1", considérons l'exemple suivant :

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

a = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
print(a.reshape(-1))</code>

Dans ce cas , a a une forme de (2, 4). En utilisant reshape(-1), nous aplatissons le tableau en un tableau unidimensionnel. La nouvelle forme devient (8,), qui est compatible avec la forme d'origine (2x4 = 8).

Explorons maintenant différentes façons d'utiliser "-1" pour remodeler les tableaux :

Remodelage en une seule fonctionnalité :

Pour remodeler un tableau en un formulaire comportant une seule fonctionnalité (c'est-à-dire une seule colonne), nous pouvons utiliser reshape(-1, 1) :

<code class="python">print(a.reshape(-1, 1))</code>

Cela donnera une forme de (8, 1), où chaque élément est une ligne du tableau d'origine.

Remodelage en un seul échantillon :

De même, pour remodeler un tableau sous une forme comportant un seul échantillon (c'est-à-dire une seule ligne), nous pouvons utiliser reshape(1, -1):

<code class="python">print(a.reshape(1, -1))</code>

Cela permettra produire une forme de (1, 8), où chaque élément est une colonne du tableau d'origine.

Remodelage avec des dimensions inconnues :

Si nous spécifions une seule dimension comme "-1", la fonction calculera la dimension inconnue en fonction de la forme d'origine et de la dimension fournie :

<code class="python">print(a.reshape(2, -1))</code>

Dans cet exemple, nous spécifions le nombre de lignes comme 2. La fonction calculera le le nombre de colonnes soit 6, ce qui donne une forme de (2, 6).

Erreur avec plusieurs dimensions inconnues :

Il est important de noter que la spécification de plusieurs dimensions car "-1" entraînera une erreur, car la fonction ne peut gérer qu'une seule dimension inconnue :

<code class="python">try:
    a.reshape(-1, -1)
except ValueError as e:
    print(e)</code>

Cela générera le message d'erreur "ne peut spécifier qu'une seule dimension inconnue."

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