NumPy Tutorial - NumPy Multidimensional Array-ndarray
NumPy é uma biblioteca que utiliza arrays multidimensionais como estrutura básica de dados. A única estrutura de dados no NumPy é ndarray
mas não Python primitivo list
data type, porque a list
corre relativamente devagar.
Depois de aprender a ndarray
que é a pedra angular da NumPy, você entenderá porque a NumPy pode alcançar computação de alta velocidade.
Definição de ndarray
ndarray
é a abreviação de n-dimension array
, ou em outras palavras - arrays multidimensionais. O ndarray
é um objeto de array que representa um array multidimensional e homogêneo de itens de tamanho fixo.
As dimensões e o número de elementos são definidos pela forma, que é um tuple de N inteiros que representa o número de elementos em cada dimensão. O tipo de elemento no array é definido por dtype
- data-type object
.
Vamos explicar as sentenças acima em linguagem leiga. Todos os elementos armazenados no objeto ndarray
devem ter o mesmo tipo e tamanho de dados.
As características do tipo de dados ndarray
são resumidas como a seguir.
- Só podem ser armazenados elementos do mesmo tipo
- A quantidade de dados em cada dimensão deve ser a mesma, por exemplo 2D
ndarray
deve ter a mesma quantidade de elementos em cada coluna, e claro que também em cada linha. - É escrito em linguagem C e pode executar a operação de matriz de forma ideal.
Atributos ndarray
Vamos listar os atributos de ndarray
.
Atributos | Descrição |
---|---|
T |
Transpor a matriz. Quando a matriz é 1 D, a matriz original é devolvida. |
data |
Um objeto buffer Python que aponta para a posição inicial dos dados no array. |
dtype |
O tipo de dados do elemento contido no ndarray. |
flags |
Informação sobre como armazenar dados ndarray na memória (layout da memória). |
flat |
Um iterador que converte a ndarray para um array unidimensional. |
imag |
A parte imaginária dos dados ndarray |
real |
Parte real dos dados da ndarray |
size |
O número de elementos contidos no ndarray. |
itemsize |
O tamanho de cada elemento em bytes. |
nbytes |
A memória total (em bytes) ocupada pela ndarray. |
ndim |
O número de dimensões contidas no ndarray. |
shape |
A forma do ndarray (os resultados são tufos). |
strides |
O número de bytes necessários para passar para o próximo elemento adjacente em cada direcção dimensional é representado por um tuple. |
ctypes |
Um iterador que é processado no módulo de tipos. |
base |
O objeto no qual ndarray está baseado (que memória está sendo referenciada). |
Quando você acessa os atributos de ndarray
, os dados da instância ndarray
não são modificados, mesmo quando você utiliza .T
para obter a transposição do objeto. Você obtém um novo objeto ndarray
mas não os dados originais modificados.
Vamos dar uma olhada no significado específico de cada atributo através de códigos de exemplo.
>>> import numpy as np
>>> a = np.array([1, 2, 3])
Nós precisamos importar a biblioteca NumPy
e criar um novo array 1-D. Você pode verificar seu tipo de dados e o tipo de dados de seu elemento.
>>> type(a)
numpy.ndarray
>>> a.dtype
dtype('int32')
Vamos criar um novo array 2-D e então verificar seus atributos.
>>> b = np.array([[4, 5, 6], [7, 8, 9]])
>>> b
array([[4, 5, 6],
[7, 8, 9]])
>>> b.T # get the transpose of b
array([[4, 7],
[5, 8],
[6, 9]])
>>> b # b keeps unmodified
array([[4, 5, 6],
[7, 8, 9]])
>>> a.size # a has 3 elements
3
>>> b.size # b has 6 elements
6
>>> a.itemsize # The size of element in a. The data type here is int64 - 8 bytes
8
>>> b.nbytes # check how many bytes in b. It is 48, where 6x8 = 48
48
>>> b.shape # The shape of b
(2, 3)
>>> b.dnim # The dimensions of b
2
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook