"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿El parámetro -1 en Reshape() de Numpy es un comodín o un valor fijo?

¿El parámetro -1 en Reshape() de Numpy es un comodín o un valor fijo?

Publicado el 2024-11-04
Navegar:617

Is the -1 Parameter in Numpy\'s Reshape() a Wildcard or a Fixed Value?

Comprender la función de -1 en Numpy Reshape

En Numpy, el método reshape() permite la transformación de formas de matriz. Cuando se trabaja con matrices 2D, es posible remodelarlas en matrices 1D usando remodelar(-1). Por ejemplo:

import numpy as np

a = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
a.reshape(-1)
# Output: array([[1, 2, 3, 4, 5, 6, 7, 8]])

Normalmente, matriz[-1] significa el elemento final de una matriz. Sin embargo, en el contexto de reshape(-1), esto tiene un significado diferente.

El parámetro -1 en Reshape

El parámetro -1 en reshape(- 1) sirve como dimensión comodín. Indica que la dimensión correspondiente de la nueva forma debe determinarse automáticamente. Esto se hace satisfaciendo el criterio de que la nueva forma debe alinearse con la forma de la matriz original, preservando su dimensión lineal.

Numpy permite el uso de -1 en uno de los parámetros de la forma, lo que permite especificar dimensiones desconocidas . Por ejemplo, (-1, 3) o (2, -1) son formas válidas, mientras que (-1, -1) no lo es.

Ejemplos de remodelación (-1)

Considere la siguiente matriz:

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

Reformar usando (-1):

z.reshape(-1)
# Output: array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12])
# New shape: (12,)

Remodelación usando (-1, 1) (función única):

z.reshape(-1, 1)
# Output: array([[ 1], [ 2], [ 3], [ 4], [ 5], [ 6], [ 7], [ 8], [ 9], [10],
#                [11], [12]])
# New shape: (12, 1)

Reformar usando (-1, 2) (Fila única):

z.reshape(1, -1)
# Output: array([[ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12]])
# New shape: (1, 12)

Reformar usando (2, -1):

z.reshape(2, -1)
# Output: array([[ 1,  2,  3,  4,  5,  6], [ 7,  8,  9, 10, 11, 12]])
# New shape: (2, 6)

Reformar usando (3, -1) (Forma original):

z.reshape(3, -1)
# Output: array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
# New shape: (3, 4)

Tenga en cuenta que especificar ambas dimensiones como -1, es decir, (-1, -1), generará un error.

Al comprender el significado de -1 en reshape(), los desarrolladores pueden transformar eficazmente las formas de las matrices para satisfacer sus necesidades específicas de procesamiento de datos en Numpy.

Declaración de liberación Este artículo se reimprime en: 1729433662 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3