Académique Documents
Professionnel Documents
Culture Documents
George Sand
Introduo
Vamos mostra que podemos executar em Python com o mdulo
NumPy todos as operaes com Matriz:
adio Matriz
subtrao Matriz
multiplicao de matrizes
Produto escalar
Produto vetorial e um monte de outras operaes sobre
matrizes
Os operadores padro: + - * / ** %
Comenando
import numpy as np
x = np.array([1,5,2])
y = np.array([7,4,1])
x + y
---array([8, 9, 3])
x * y
---array([ 7, 20, 2])
x - y
----array([-6, 1, 1])
x / y
----array([0, 1, 2])
x % y
----array([1, 1, 0])
Produdto escalar
x = np.array([1,2,3])
y = np.array([-7,8,9])
dot = np.dot(x,y)
x_modulo = np.sqrt((x*x).sum())
y_modulo = np.sqrt((y*y).sum())
cos_angulo = dot / x_modulo / y_modulo
# Cosseno do angulo entre X e Y
angulo = np.arccos(cos_angulo)
angulo
0.80823378901082499
angulo * 360 / 2 / np.pi # angulo em graus
46.308384970187326
Matriz
x = np.array( ((2,3), (3, 5)) )
y = np.array( ((1,2), (5, -1)) )
x * y
array([[ 2, 6],
[15, -5]])
x = np.matrix( ((2,3), (3, 5)) )
y = np.matrix( ((1,2), (5, -1)) )
x * y
matrix([[17, 1],
[28, 1]])
Produto de Matrizes
x = np.array( ((2,3), (3, 5)) )
y = np.matrix( ((1,2), (5, -1)) )
np.dot(x,y)
matrix([[17, 1],
[28, 1]])
Outra altenativa
np.mat(x) * np.mat(y)
matrix([[17, 1],
[28, 1]])
Aplicao Prtica para Multiplicao
Seja 4 pessoas, Zezinho, Mia, Maria e Luana. Cada um deles
comprou chocolates a partir de uma escolha de trs. A marca
so A, B e C. Zezinho comprou 100 g da marca A, 175 g da
marca B e 210 da C. Mia escolheu 90 g de A, 160 g de B e 150
g de C. Maria comprou 200 g de A, 50 B e de 100 g de C.
Luana, aparentemente, no gostou da marca B, porque ela no
tinha comprado qualquer um desses. Mas ela parece ser f da
marca C, pois ela comprou 310 g. Alm disso, ela comprou 120
g de A. Ento, o preo destes chocolates: A custa 2,98 por
100 g, B custa 3,90 e C s 1,99. Calcule o quanto cada um
deles tinha que pagar:
Resposta
NumPessoas =
np.array([[100,175,210],[90,160,150],[200,50,100],[120,0,310
]])
Preco_per_100_g =
np.array([2.98,3.90,1.99])
Preco_em_centavos =
np.dot(NumPessoas,Preco_per_100_g)
Preco_em_Real = Preco_em_centavos /
np.array([100,100,100,100])
Prece_em_Real
array([ 13.984, 11.907, 9.9 , 9.745])
Produto vetorial
x = np.array([0,0,1])
y = np.array([0,1,0])
np.cross(x,y)
array([-1, 0, 0])
np.cross(y,x)
array([1, 0, 0])
Criando Vetores (arrays) em Numpy
Arrays NumPy podem ser criados a partir de estruturas de
dados do Python (listas, tuplas) ou a partir de funes
especfics para criao de de arrays.
b = [7,8,9]
print np.outer(a,b)
M todos dos vetores
a.sum() retorna a soma dos elementos de a
a.min() retorna o menor elemento de a
a.max() retorna o maior elemento de a
a.mean() retorna a mdia dos elementos de a
a.std() retorna o desvio padro dos elementos de a
a.var() retorna a varincia dos elementos de a
a.trace() trao de a
a.copy() retorna a cpia de a
a.conjugate() retorna o complexo conjugado de a
Matrizes
Os arrays apresentados at agora so do tipo ndarray.H um
tipo de array bidimensional chamado matrix, que possui
algumas propriedas especiais de matrizes:
matrix.I inversa
matrix.T transposta
matrix.H conjugada
matrix.A transforma a matriz em um array
O operador * efetua operaes usuais de lgebra linear,
tipo matriz-matriz, matriz-vetor, vetor-matriz.
O mdulo numpy.linalg possui diversas funes de lgebra
linear, como a soluo de sistemas de equaes lineares por
exemplo. x = linalg.solve((A,B))
Exerccios
1. Seja a matriz ([1,2,3.2], [4,5,2.3], [1,2,5]) calcule o
determinante (usando o python).
2. Crie um vetor com 200 amostras de 1 a 1000?
3. Multiplique a matriz do exerccio 1 por uma matriz
unitria
4. Calcule a inversa da matriz do exerccio 1
5. Calcule o produto vetorial de [3,5,6.7] e [2,3,4.6]
6. Criar uma matriz 5(i) por 5(j) em que os elementos so
i+j. (Dica use o for e if)
Salvando Dados arquivo de texto com savetxt
import numpy as np
x = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]], np.int32)
np.savetxt("test.txt", x)
np.savetxt("test2.txt", x, fmt="%2.3f",
delimiter=",")
np.savetxt("test3.txt", x, fmt="%04d", delimiter=" :-) ")
http://www.python-course.eu/