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.
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