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
Can you explain the difference between using .reshape() and np.reshape()?
What happens if I try to reshape an array to a shape that doesn't match the total number of elements?
Can you give more examples of reshaping arrays with different dimensions?
Incrível!
Completion taxa melhorada para 3.85
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