API · NumPy
Função Python NumPy numpy.shape()
Use numpy.shape() para obter as dimensões de um array como uma tupla ou leia-as a partir do atributo .shape.
Nesta página
Use a função NumPy numpy.shape() para descobrir as dimensões de um array. Ela retorna uma tupla de números inteiros, em que cada valor indica o comprimento de uma dimensão. Por exemplo, (5, 3) significa cinco linhas e três colunas. A tupla descreve a forma atual da entrada; o fato de ela ser imutável não determina se o próprio array pode ser remodelado.
Sintaxe de numpy.shape()
Chame numpy.shape(a) passando o valor cujas dimensões você quer consultar. O argumento a é obrigatório e pode ser um array NumPy ou outro valor semelhante a um array, como uma sequência aninhada. A função retorna uma tupla com um número inteiro para cada dimensão, na ordem. Uma entrada unidimensional tem um valor na tupla; uma entrada bidimensional tem os comprimentos das linhas e das colunas; entradas com mais dimensões acrescentam um comprimento para cada eixo adicional.
Exemplos de numpy.shape()
O exemplo a seguir cria um array NumPy bidimensional e imprime as dimensões informadas por numpy.shape().
import numpy as np
array = np.array([[11, 12, 5], [15, 6, 10], [10, 8, 12], [12, 15, 8], [34, 78, 90]])
print(np.shape(array))
(5, 3)
O primeiro valor da tupla descreve o primeiro eixo, o segundo valor descreve o segundo eixo, e assim por diante. Em um array bidimensional, esses eixos correspondem às linhas e às colunas. Esse resultado é útil para confirmar como os dados estão organizados antes de selecionar um eixo ou passá-los para outra operação.
Para um array sem valores ao longo de seu único eixo, a forma é (0,). Um array unidimensional que contém [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] tem forma (20,). Um array com cinco linhas e três colunas tem forma (5, 3), enquanto um array tridimensional organizado em três grupos de duas linhas, com três valores por linha, tem forma (3, 2, 3). Essas tuplas descrevem os comprimentos dos eixos, na ordem; não descrevem os valores armazenados no array. A vírgula na tupla de um único item (20,) é uma sintaxe do Python que a distingue de um inteiro entre parênteses.
Este exemplo em Python cria um array sem valores e consulta sua forma. Ele não imprime nada, pois atribui a forma a uma variável sem chamar print().
import numpy as np
empty_array = np.array([])
empty_shape = np.shape(empty_array)
A função informa os comprimentos presentes nas dimensões da entrada. Se o resultado for diferente do esperado, confira como a entrada foi construída e a ordem das sequências aninhadas. Por exemplo, em um array bidimensional regular, o primeiro valor da forma corresponde ao número de linhas, e o segundo, ao número de colunas. O NumPy informa a estrutura presente nos dados, sem inferir rótulos pretendidos para linhas ou colunas. Para dados aninhados irregulares, o comportamento pode depender da versão do NumPy e das regras de conversão; por isso, use um array regular quando precisar de comprimentos de eixo consistentes.
Usando o atributo .shape
Um array NumPy também disponibiliza suas dimensões por meio do atributo .shape. Para um array a, a.shape fornece a mesma tupla que numpy.shape(a). Use a função quando quiser passar um valor para uma operação genérica; use o atributo quando já tiver um array e quiser consultar suas dimensões diretamente. O atributo é acessado sem parênteses, enquanto numpy.shape() é uma chamada de função.
Por exemplo, a.shape informa (5, 3) para um array com cinco linhas e três colunas, assim como numpy.shape(a). Nenhuma das formas altera o array; ambas informam suas dimensões. Se você remodelar um array, consultar qualquer uma delas depois mostrará suas dimensões atualizadas. Essa distinção é útil ao depurar a preparação dos dados: inspecione a forma antes de uma operação para confirmar o número e a ordem esperados dos eixos e, em seguida, use a tupla resultante para localizar a dimensão que precisa de atenção. numpy.shape() é uma função, enquanto .shape é um atributo do array.