Reestruturação da Matriz do NumPy
- Página Anterior Forma da Matriz do NumPy
- Próxima Página Iteração da Matriz do NumPy
Reshape de array
A重塑 significa alterar a forma do array.
A forma do array é o número de elementos em cada dimensão.
Através da重塑, podemos adicionar ou remover dimensões ou alterar o número de elementos em cada dimensão.
De 1-D para 2-D
Exemplo
Converter o seguinte array 1-D de 12 elementos em um array 2-D.
A dimensão externa terá 4 arrays, cada um contendo 3 elementos:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) newarr = arr.reshape(4, 3) print(newarr)
De 1-D para 3-D
Exemplo
Converter o seguinte array 1-D de 12 elementos em um array 3-D.
A dimensão externa terá 2 arrays, cada um contendo 3 arrays, cada um com 2 elementos:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) newarr = arr.reshape(2, 3, 2) print(newarr)
Podemos重塑 em qualquer forma?
Sim, desde que o número de elementos necessários para a重塑 seja igual em ambas as formas.
Podemos重塑 8 elementos de um array 1D em 4 elementos de um array 2D de 2 linhas, mas não podemos重塑 em um array 2D de 3 elementos em 3 linhas, pois isso exigiria 3x3 = 9 elementos.
Exemplo
Tente converter um array 1D com 8 elementos em um array 2D com 3 elementos em cada dimensão (isto gerará um erro):
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(3, 3) print(newarr)
Retornar cópia ou vista?
Exemplo
Verificar se o array retornado é uma cópia ou uma vista:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) print(arr.reshape(2, 4).base)
O exemplo acima retorna o array original, portanto, é uma visão.
Dimensão Desconhecida
Você pode usar uma dimensão “desconhecida”.
Isso significa que você não precisa especificar um número exato para uma das dimensões no método reshape.
Passar -1
Como valor, o NumPy calculará esse número para você.
Exemplo
Converter um array 1D de 8 elementos em um array 3D de 2x2 elementos:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) newarr = arr.reshape(2, 2, -1) print(newarr)
Observação:Não podemos converter -1
Passados para uma ou mais dimensões.
Flattening arrays
Flattening arrays (Flattening the arrays) significa converter arrays multidimensionais em arrays 1D.
Podemos usar reshape(-1)
Para fazer isso.
Exemplo
Converter arrays em 1D:
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) newarr = arr.reshape(-1) print(newarr)
Observação:Há muitas funções que podem alterar a forma dos arrays numpy flatten, ravel, e também reordenar elementos rot90, flip, fliplr, flipud, etc. Essas funções pertencem à parte intermediária e avançada do numpy.
- Página Anterior Forma da Matriz do NumPy
- Próxima Página Iteração da Matriz do NumPy