#4 - Atributos da matriz no NumPy

Conheça os principais atributos de uma matriz NumPy: shape, ndim, itemsize e flags, com exemplos práticos de cada um.

#4 - Atributos da matriz no NumPy

ndarray.shape

Este atributo da matriz retorna uma tupla que consiste em dimensões da matriz. Também pode ser usado para redimensionar a matriz.

Exemplo 1

import numpy as np 
a = np.array([[1,2,3],[4,5,6]]) 
print a.shape

A saída é a seguinte -

(2, 3)

Exemplo 2

# isto redimensiona o ndarray
import numpy as np

a = np.array([[1,2,3],[4,5,6]])
a.shape = (3,2)
print a

A saída é a seguinte -

[[1 2]
 [3 4]
 [5 6]]

Exemplo 3

O NumPy também fornece uma função de remodelação para redimensionar uma matriz.

import numpy as np 
a = np.array([[1,2,3],[4,5,6]]) 
b = a.reshape(3,2) 
print b

A saída é a seguinte -

[[1 2]
 [3 4]
 [5 6]]

ndarray.ndim

Este atributo da matriz retorna o número de dimensões da matriz.

Exemplo 1

# uma matriz de números espaçados igualmente
import numpy as np
a = np.arange(24)
print a

A saída é a seguinte -

[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]

Exemplo 2

# esta é uma matriz dimensional
import numpy as np
a = np.arange(24)
a.ndim

# agora remodelando a matriz
b = a.reshape(2,4,3)
print b
# b tem agora 3 dimensões

A saída é a seguinte -

[[[ 0  1  2]
  [ 3  4  5]
  [ 6  7  8]
  [ 9 10 11]]

 [[12 13 14]
  [15 16 17]
  [18 19 20]
  [21 22 23]]]

numpy.itemsize

Este atributo da matriz retorna o comprimento de cada elemento da matriz em bytes.

Exemplo 1

# o dtype da matriz é int8 (1 byte)
import numpy as np
x = np.array([1,2,3,4,5], dtype = np.int8)
print x.itemsize

A saída é a seguinte -

1

Exemplo 2

# o dtype da matriz agora é float32 (4 bytes)
import numpy as np
x = np.array([1,2,3,4,5], dtype = np.float32)
print x.itemsize

A saída é a seguinte -

4

numpy.flags

O objeto ndarray possui os seguintes atributos. Seus valores atuais são retornados por esta função.

Atributo & Descrição
1

C_CONTIGUOUS (C)

Os dados estão em um único segmento contíguo no estilo C

2

F_CONTIGUOUS (F)

Os dados estão em um único segmento contíguo no estilo Fortran

3

OWNDATA (O)

A matriz possui a memória que usa ou a empresta de outro objeto

4

WRITEABLE (W)

A área de dados possuir permissão de escrita. Definir como False bloqueia os dados, tornando-os somente leitura

5

ALIGNED (A)

Os dados e todos os elementos estão alinhados adequadamente para o hardware

6

UPDATEIFCOPY (U)

Essa matriz é uma cópia de outra matriz. Quando essa matriz é desalocada, a matriz base será atualizada com o conteúdo dessa matriz

Exemplo

O exemplo a seguir mostra os valores atuais dos sinalizadores.

import numpy as np
x = np.array([1,2,3,4,5])
print x.flags

A saída é a seguinte -

C_CONTIGUOUS : True
F_CONTIGUOUS : True
OWNDATA : True
WRITEABLE : True
ALIGNED : True
UPDATEIFCOPY : False

Fonte traduzida com adaptações: NumPy - Array Attributes