Reformatação de Arrays
Redimensionamento de arrays no NumPy permite alterar a forma de um array preservando todos os elementos. Trata-se de uma operação comumente utilizada em aprendizado de máquina, pois muitas funções e métodos de bibliotecas de aprendizado de máquina exigem que os arrays possuam uma forma específica.
Formas de Arrays
A forma de um array NumPy é uma tupla que indica o número de elementos em cada dimensão (eixo).
Por exemplo, um array 1D de comprimento 5 possui formato (5,), enquanto um array 2D com 3 linhas e 4 colunas possui formato (3, 4):
1234import numpy as np array_1d = np.array([5, 7, 1, 10, 9]) array_2d = np.zeros((3, 4)) print(array_1d.shape, array_2d.shape)
ndarray.reshape()
Arrays do NumPy possuem o método .reshape() para alteração de formato. Basta informar o formato do array resultante como um inteiro, uma tupla de inteiros ou inteiros como argumentos separados.
Este método não modifica o array no local, mas retorna um novo array.
Na verdade, .reshape() retorna uma visualização do array original, portanto quaisquer alterações feitas no array reformatado também afetarão o array original.
123456789import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = array.reshape(3, 4) print(reshaped_array_2d) # Reshaping the array to a 2x2x3 3D array reshaped_array_3d = array.reshape(2, 2, 3) print(reshaped_array_3d)
O número de elementos no array reformatado deve ser o mesmo do array original, portanto não é possível passar uma forma arbitrária.
No nosso exemplo, ao remodelar o array para o formato de 3 linhas e 4 colunas (3x4) ou para o formato de 2 blocos, cada um contendo 2 linhas e 3 colunas (2x2x3), ainda resulta em um total de 12 elementos.
Remodelagem com -1
No NumPy, ao utilizar -1 no método .reshape(), o tamanho dessa dimensão é calculado automaticamente com base no tamanho original do array, mantendo o número total de elementos.
O uso de .reshape(-1, 1) é especialmente útil em aprendizado de máquina quando é necessário remodelar um array 1D para um array 2D com uma coluna. O número de linhas nesse caso é igual ao número de elementos (calculado automaticamente).
123456import numpy as np # Creating a 1D array from 0 to 4 inclusive array = np.arange(5) # Reshaping the array to a 2D array with one column reshaped_array = array.reshape(-1, 1) print(reshaped_array)
O array remodelado é armazenado como um array 2D com 5 linhas e 1 coluna, tendo o formato (5, 1). Em contraste, o array 1D inicial possui o formato (5,), que é uma tupla com um único elemento. Para qualquer array 1D, o formato é sempre (n,), onde n representa o número de elementos.
numpy.reshape()
A função reshape() no NumPy é idêntica ao método .reshape(), mas você deve passar um array como seu primeiro argumento. Para o parâmetro shape, é possível passar uma tupla de inteiros ou um único inteiro, por exemplo, np.reshape(array, (3, 4)):
123456import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = np.reshape(array, (3, 4)) print(reshaped_array_2d)
Swipe to start coding
Você possui um array sales_data_2021 com dados simulados de vendas trimestrais para dois produtos em 2021. Os primeiros 4 elementos representam as vendas trimestrais do primeiro produto, e os últimos 4 elementos representam as vendas trimestrais do segundo produto.
- Utilizar o método apropriado de
sales_data_2021para reformatá-lo em um array 2D. - A primeira linha deve conter as vendas trimestrais do primeiro produto.
- A segunda linha deve conter as vendas trimestrais do segundo produto.
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 3.7
Reformatação de Arrays
Deslize para mostrar o menu
Redimensionamento de arrays no NumPy permite alterar a forma de um array preservando todos os elementos. Trata-se de uma operação comumente utilizada em aprendizado de máquina, pois muitas funções e métodos de bibliotecas de aprendizado de máquina exigem que os arrays possuam uma forma específica.
Formas de Arrays
A forma de um array NumPy é uma tupla que indica o número de elementos em cada dimensão (eixo).
Por exemplo, um array 1D de comprimento 5 possui formato (5,), enquanto um array 2D com 3 linhas e 4 colunas possui formato (3, 4):
1234import numpy as np array_1d = np.array([5, 7, 1, 10, 9]) array_2d = np.zeros((3, 4)) print(array_1d.shape, array_2d.shape)
ndarray.reshape()
Arrays do NumPy possuem o método .reshape() para alteração de formato. Basta informar o formato do array resultante como um inteiro, uma tupla de inteiros ou inteiros como argumentos separados.
Este método não modifica o array no local, mas retorna um novo array.
Na verdade, .reshape() retorna uma visualização do array original, portanto quaisquer alterações feitas no array reformatado também afetarão o array original.
123456789import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = array.reshape(3, 4) print(reshaped_array_2d) # Reshaping the array to a 2x2x3 3D array reshaped_array_3d = array.reshape(2, 2, 3) print(reshaped_array_3d)
O número de elementos no array reformatado deve ser o mesmo do array original, portanto não é possível passar uma forma arbitrária.
No nosso exemplo, ao remodelar o array para o formato de 3 linhas e 4 colunas (3x4) ou para o formato de 2 blocos, cada um contendo 2 linhas e 3 colunas (2x2x3), ainda resulta em um total de 12 elementos.
Remodelagem com -1
No NumPy, ao utilizar -1 no método .reshape(), o tamanho dessa dimensão é calculado automaticamente com base no tamanho original do array, mantendo o número total de elementos.
O uso de .reshape(-1, 1) é especialmente útil em aprendizado de máquina quando é necessário remodelar um array 1D para um array 2D com uma coluna. O número de linhas nesse caso é igual ao número de elementos (calculado automaticamente).
123456import numpy as np # Creating a 1D array from 0 to 4 inclusive array = np.arange(5) # Reshaping the array to a 2D array with one column reshaped_array = array.reshape(-1, 1) print(reshaped_array)
O array remodelado é armazenado como um array 2D com 5 linhas e 1 coluna, tendo o formato (5, 1). Em contraste, o array 1D inicial possui o formato (5,), que é uma tupla com um único elemento. Para qualquer array 1D, o formato é sempre (n,), onde n representa o número de elementos.
numpy.reshape()
A função reshape() no NumPy é idêntica ao método .reshape(), mas você deve passar um array como seu primeiro argumento. Para o parâmetro shape, é possível passar uma tupla de inteiros ou um único inteiro, por exemplo, np.reshape(array, (3, 4)):
123456import numpy as np # Creating a 1D array from 0 to 11 inclusive array = np.arange(12) # Reshaping the array to a 3x4 2D array (matrix) reshaped_array_2d = np.reshape(array, (3, 4)) print(reshaped_array_2d)
Swipe to start coding
Você possui um array sales_data_2021 com dados simulados de vendas trimestrais para dois produtos em 2021. Os primeiros 4 elementos representam as vendas trimestrais do primeiro produto, e os últimos 4 elementos representam as vendas trimestrais do segundo produto.
- Utilizar o método apropriado de
sales_data_2021para reformatá-lo em um array 2D. - A primeira linha deve conter as vendas trimestrais do primeiro produto.
- A segunda linha deve conter as vendas trimestrais do segundo produto.
Solução
Obrigado pelo seu feedback!
single