Tutorial básico de NumPy

Posted by Anderson Berg on 25 Out, 2011

NumPy é um pacote de Python que suporta operações com vetores e matrizes e é essencial para a computação científica com Python. O NumPy é baseado em C, portanto tem um desempenho superior se comparado às operações com vetores originais do Python. Neste post eu quero mostrar uma introdução básica ao NumPy para os iniciantes.

INSTALAÇÂO DO NUMPY

Primeiro vamos instalar o NumPy. No Windows, basta baixar a última versão do numpy no site do SourceForge e instalar facilmente com o arquivo .exe. No Linux, instale o pacote "python-numpy" disponível nos repositórios da sua distribuição ou use o pip:

pip install numpy

Pronto, agora é só abrir o console Python e importar o pacote:

1
>>> import numpy as np

CRIAÇÃO DE UM ARRAY NUMPY

Para criar um array, é bem simples:

1
2
3
>>> a = np.array([0,1,2,3,4,5])
>>> a
array([0,1,2,3,4,5])

A função array do NumPy, recebe uma lista de Python e transforma em um array NumPy. Você pode checar o tipo:

1
>>> type(a)

E o tipo dos elementos:

1
>>> a.dtype

Para criar matrizes multidimensionais é bem simples também:

1
>>> a = np.array([[0,1,2,3], [4,5,6,7], [8,9,10,11]])

A função arange é bem parecida com a função range, só que retorna um array ao invés de uma lista:

1
2
>>> x = np.arange(11.)
array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])

é possível definir mais parâmetros pra função arange:

1
2
>>> x = np.arange(10, 30, 5) #(limite inferior, limite superior, passo)
array([10, 15, 20, 25])

TAMANHO DO ARRAY

A propriedade shape mostra o tamanho de cada dimensão da matriz:

1
2
>>> a.shape
(3,4)

é possível, também, modificar essa propriedade:

1
2
3
4
>>> a.shape = (2,6)
>>> a
array([[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11]])

ACESSANDO ELEMENTOS

Para acessar elementos:

1
2
>>> a[1,3]
9

é possível acessar vários elementos ao mesmo tempo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
>>>a[0,3:5]
array([3, 4])
>>>a[4:,4:]
array([[44, 45],
[54, 55]])
>>>a[:,2]
array([2,12,22,32,42,52])
>>>a[2::2,::2]
array([[20, 22, 24],
[40, 42, 44]])

Matriz numpy

Matriz numpy Fonte: SciPy 2011 - Jonathan Rocher

MATRIZ TRANSPOSTA

Para obter a matriz transposta existem duas formas:

1
2
3
4
5
6
>>> a.transpose()
>>> a.T
array([[ 0, 4, 8],
[ 1, 5, 9],
[ 2, 6, 10],
[ 3, 7, 11]])

OUTRAS FUNçõES IMPORTANTES DO NUMPY

A função sum soma todos os elementos do array:

1
2
>>> np.sum(a)
66

Podemos usar o parâmetro axis e determinar em qual eixo queremos a soma:

1
2
3
4
>>> np.sum(a, axis=0)
array([12, 15, 18, 21])
>>> np.sum(a, axis=1)
array([ 6, 22, 38])

Alternativamente, podemos usar o método sum:

1
2
3
4
>>> a.sum()
66
>>> a.sum(axis=0)
array([12, 15, 18, 21])

As funções amin e amax retornam o valor mínimo e o valor máximo do array, respectivamente:

1
2
3
4
5
>>> b = np.array([3.4, 5., 33., 8.])
>>> np.amin(b)
3.4
>>> np.amax(b)
33.0

argmin e argmax retornam o índice do menor valor e do maior valor do array, respectivamente:

1
2
3
4
>>> b.argmax()
2
>>> b.argmin()
0

O atributo flat retorna um iterator que permite acessar elementos de um array multidimensional como se ele fosse uma lista:

1
2
3
4
>>> a = np.array([[0,1,2,3], [4,5,6,7], [8,9,10,11]])
>>> a.flat
>>> a.flat[:]
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])

Existem ainda outras diversas funções que podemos explorar em outro post.


Comments !