"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > O parâmetro -1 no Reshape() do Numpy é um curinga ou um valor fixo?

O parâmetro -1 no Reshape() do Numpy é um curinga ou um valor fixo?

Publicado em 2024-11-04
Navegar:293

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

Compreendendo o papel de -1 no Numpy Reshape

Em Numpy, o método reshape() permite a transformação de formas de array. Ao trabalhar com arrays 2D, é possível remodelá-los em arrays 1D usando reshape(-1). Por exemplo:

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, array[-1] significa o elemento final em um array. No entanto, no contexto de reshape(-1), isso tem um significado diferente.

O parâmetro -1 em Reshape

O parâmetro -1 em reshape(- 1) serve como uma dimensão curinga. Indica que a dimensão correspondente da nova forma deve ser determinada automaticamente. Isso é feito satisfazendo o critério de que a nova forma deve estar alinhada com a forma original do array, preservando sua dimensão linear.

Numpy permite o uso de -1 em um dos parâmetros da forma, possibilitando a especificação de dimensões desconhecidas . Por exemplo, (-1, 3) ou (2, -1) são formas válidas, enquanto (-1, -1) não é.

Exemplos de remodelação (-1)

Considere a seguinte matriz:

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

Remodelando usando (-1):

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

Remodelando usando (-1, 1) (recurso único):

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

Remodelando usando (-1, 2) (linha única):

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

Remodelando 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)

Remodelando 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)

Observe que especificar ambas as dimensões como -1, ou seja, (-1, -1), resultará em um erro.

Ao compreender o significado de -1 em reshape(), os desenvolvedores podem transformar efetivamente formas de array para atender às suas necessidades específicas de processamento de dados em Numpy.

Declaração de lançamento Este artigo foi reimpresso em: 1729433662 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3