In [ ]:
import numpy as np
A base de seu funcionamento é o np.array, que retorna o objeto array sobre o qual todas as funções estão implementadas
In [ ]:
a = np.array([1, 2, 3])
print(repr(a), a.shape, end="\n\n")
b = np.array([(1, 2, 3), (4, 5, 6)])
print(repr(b), b.shape)
O array traz consigo diversos operadores já implementados:
In [ ]:
print(b.T, end="\n\n") # transpoe uma matriz
print(a + b, end="\n\n") # soma um vetor linha/coluna a todas as linhas/colunas de uma matriz
print(b - a, end="\n\n") # subtrai um vetor linha/coluna a todas as linhas/colunas de uma matriz
# multiplica os elementos de um vetor linha/coluna
# a todos os elementos das linhas/colunas de uma matriz
print(a * b, end="\n\n")
print(a**2, end="\n\n") # eleva os elementos ao quadrado
O Numpy traz consigo diversas operações matemáticas implementadas, as quais podem ser aplicadas sobre um valor ou um array de valores.
OBS: podemos ver a aplicações dessas funções como uma operação de transformação (map)
In [ ]:
print(10*np.sin(1)) # seno trigonométrico de 1
print(10*np.sin(a)) # seno trigonométrico de cada elemento de a
Uma operação booleana pode ser aplicada sobre todos os elementos de um array, retornando um array de mesmas dimensões com o resultado da operação
In [ ]:
b<35
Existem também operações utilitárias pré-definidas em um array
In [ ]:
print(b,end="\n\n")
print('Axis 1: %s' % b[0], end="\n\n") # retorna um vetor
print(np.average(b), end="\n\n") # tira a média dos elementos
print(np.average(b, axis=1), end="\n\n") # tira a média dos elementos dos vetores no eixo 1
print(b.sum(), end="\n\n") # retorna as somas dos valores
print(b.sum(axis=1), end="\n\n") # retorna as somas dos valores no eixo 1
print(b.min(), end="\n\n") # retorna o menor valor
print(b.max(), end="\n\n") # retorna o maior valor
Existem também funções para gerar arrays pré-inicializados
In [ ]:
print(np.zeros((3, 5)), end="\n\n") # array de zeros com dimensões [3,5]
print(np.ones((2,3,4)), end="\n\n------------\n\n") # array de uns com dimensões [2,3,4]
print(np.full((2, 2), 10), end="\n\n") # array de 10 com dimensões [2,2]
print(np.arange(10, 30, 5), end="\n\n") # valores de 10 a 30 com passo 5
print(np.random.rand(2, 3), end="\n\n") # array cde dimensao [2,3] com valores aleatórios
Podemos selecionar intervalos do array, permitindo recuperar apenas uma porção dele
In [ ]:
d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
d
In [ ]:
d[:, 0] # todas as linhas (:) da primeira coluna (0)
In [ ]:
d[:, 1] # todas as linhas (:) da segunda coluna (1)
In [ ]:
d[:, 0:2] # todas as linhas (:) das colunas de 0 à 2
In [ ]:
d[:, 2] # todas as linhas (:) da terceira coluna (2)
O Numpy conta também com funções para salvar/ler arrays de arquivos
In [ ]:
x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
np.save('/tmp/x.npy', x)
del(x)
x = np.load('/tmp/x.npy')
print(x)
In [ ]: