Escolar Documentos
Profissional Documentos
Cultura Documentos
António Sousa
06/03/2019
Resumo
Linguagens na computação
Linguagens e programas
A linguagem Python
A linguagem Python
Bases da linguagem Python
Comandos Python
Scripts e programas
Bibliotecas
Cálculo cientı́fico
Bibliotecas para cálculo cientı́fico
Biblioteca Sympy
Biblioteca Pandas
Referências
Linguagens na computação
A linguagem Python Linguagens e programas
Cálculo cientı́fico A linguagem Python
Referências
Linguagens na computação
Linguagens na computação
A linguagem Python Linguagens e programas
Cálculo cientı́fico A linguagem Python
Referências
Programas de computador
Um programa é uma sequência de comandos numa dada
linguagem com vista a realizar uma tarefa, por exemplo,
I realizar cálculos numéricos ou simbólicos;
I automatizar tarefas repetitivas;
I fornecer um navegador Web;
I fornecer uma aplicação especı́fica, etc..
Linguagens de programação
No contexto desta apresentação, linguagem refere-se a um
conjunto de comandos de uma linguagem de programação,
convertı́vel numa sequência de instruções que o processador deve
executar.
A linguagem pode ser:
I Linguagem de máquina;
I Linguagem assembly e de baixo nı́vel
C, ...
I Linguagem de alto nı́vel
C, C++, Java, Python, ...
I Linguagem de aplicações (macros)
VBA, SPSS, ...
I Linguagem de cálculo cientı́fico
MATLAB, IDL, Maxima, ...
ATS Cálculo cientı́fico com Python
Linguagens na computação
A linguagem Python Linguagens e programas
Cálculo cientı́fico A linguagem Python
Referências
Compilar e interpretar
Porquê o Python?
O Python é uma linguagem de alto nı́vel interpretada mas que
implementa uma solução mista
1. Compila o código fonte para bytecode;
2. O interpretador executa o programa pseudo-compiladado.
Maior rapidez de execução e facilidade de elaboração.
Linguagens na computação
A linguagem Python Linguagens e programas
Cálculo cientı́fico A linguagem Python
Referências
Linguagens na computação
A linguagem Python Linguagens e programas
Cálculo cientı́fico A linguagem Python
Referências
Linguagens na computação
A linguagem Python Linguagens e programas
Cálculo cientı́fico A linguagem Python
Referências
Editor do Spyder
Para um trabalho mais complexo deve-se usar um editor.
No Editor integrado do Spyder existe o marcador #%% nome da
célula que auxilia na separação do código em secções e permite a
sua execução separada.
A linguagem Python
Operadores
and Conjunção
or Disjunção
not Negação
Tipos de dados
O Python é uma linguagem tipificada.
De base, os tipos de dados suportados são
I numéricos:
int inteiros
long inteiros longos
float ponto flutuante (notação cientı́fica)
complex complexos com parte real e imaginária do tipo
float
I lógicos ou booleanos:
bool apenas valor False ou True
Para ver o tipo de uma variável usa-se o comando
type(objeto)
Estruturas de dados
Usam-se quando o número de dados é variável, ou de diferentes
tipos. Podem ser
str cadeia de caracteres (string)
tuple sequência formada por vários elementos (imutável)
list sequência formada por vários objetos (mutável)
dict dicionário que mapeia objetos a chaves
set conjunto de elementos não repetidos
dia = 18
Exemplo
Variáveis ou objetos?
Na linguagem Python tudo são objetos que possuem valor(es),
funções e métodos, listados com o comando
dir(objeto)
Exemplo
z=(2+3j) # z é complexo
w=z.conjugate() # w é conjugado de z
c=abs(z) # módulo de z
x=z.real # parte real de z
Nota: nome do objeto seguido de ponto e teclar [TAB] vai listar os parâmetros
associados ao objeto.
ATS Cálculo cientı́fico com Python
Linguagens na computação Bases da linguagem Python
A linguagem Python Comandos Python
Cálculo cientı́fico Scripts e programas
Referências Bibliotecas
Condições
Tuplos
Listas
Strings
Exemplo
a=raw_input(’Qual o seu nome? ’)
b=int(raw_input(’e a sua idade? ’))
msg=a+u’, a sua idade é ’+str(b)
print(msg)
Blocos de código
Exemplo
x=1
while x<10:
print(x)
x=x*2
print(str(x)+u’ está fora do ciclo’)
Controlo de fluxo
Controlo de fluxo
Exemplo
a=int(raw_input(’indique um inteiro entre 1 e 10:’))
if a<=10 and a>=5:
print(str(a)+’ tem valor inferior a uma dezena’)
elif a<5:
print(str(a)+’ tem valor menor que 5’)
else:
print(’indicou um inteiro maior que 10’)
Ciclos interrompidos
Nos ciclos o comando break força a saı́da imediata e continue
passa de imediato à iteração seguinte.
Exemplo
for i in range(2,100):
x=2; flag=True
while x*x<=i:
if float(i)/x==int(i/x):
flag=False
break
x=x+1
if flag:
print(’\n’+str(i)+u’ é primo’+’\n’)
continue
print(i)
ATS Cálculo cientı́fico com Python
Linguagens na computação Bases da linguagem Python
A linguagem Python Comandos Python
Cálculo cientı́fico Scripts e programas
Referências Bibliotecas
Exemplo
def fact(n):
””” calcula o fatorial de n ”””
if n==0:
res=1
else:
res=n*fact(n-1) # função recursiva n!=(n-1)!
return res
Comandos Python
Comandos de entrada/saı́da
Comandos de entrada/saı́da
Exemplo
nome=raw_input(’Indique o seu nome:’)
idade=input(’Indique a sua idade:’)
with open(’test.txt’,’w’) as f:
f.write(’Nome: ’ + nome + ’\n’)
f.write(’Idade: ’ + str(idade) + \n’)
f = open(’test.txt’,’r’)
for line in f:
print(line, end = ’ ’)
Funções booleanas
Funções matemáticas
abs(x) Valor absoluto de x
cmp(x,y) (-1) se x < y, zero se x = y e (+1) se x > y.
complex(s) Converte s para complexo.
complex(x,y) Complexo z = x + y j.
divmod(x,y) Divisão e resto da divisão inteira de x por y.
eval(s) Avalia a expressão s.
float(x) Variável vı́rgula flutuante.
int(x) Variável inteira.
max(iter) Máximo dos elementos do iterador.
min(iter) Mı́nimo dos elementos do iterador.
pow(x,y) xy ; o mesmo que x ∗ ∗y.
sum(iter) Soma dos valores do iterador.
round(x,n) Arredonda x para n casas decimais.
ATS Cálculo cientı́fico com Python
Linguagens na computação Bases da linguagem Python
A linguagem Python Comandos Python
Cálculo cientı́fico Scripts e programas
Referências Bibliotecas
Strings
Comandos funcionais
Exemplo
y=iter(range(100))
z=filter(lambda x:x*(x>=5 and x<=10),y)
reduce(lambda x,y:x+y,z)
Comandos de ambiente
Escrever programas
Recursos adicionais
Bibliotecas padrão
SAÍDA
SO: nt
path: [’’, ’D:\\LMAT1\\Scripts\\mpmath’, ’D:\\LMAT1\\Scripts\\LabMat1_Lib’]
n= 1329699
Tempo: 1.72 s
Cálculo cientı́fico
Linguagens na computação
Bibliotecas para cálculo cientı́fico
A linguagem Python
Biblioteca Sympy
Cálculo cientı́fico
Biblioteca Pandas
Referências
Bibliotecas fundamentais
Numpy
Linguagens na computação
Bibliotecas para cálculo cientı́fico
A linguagem Python
Biblioteca Sympy
Cálculo cientı́fico
Biblioteca Pandas
Referências
Scipy
Matplotlib e Pylab
Linguagens na computação
Bibliotecas para cálculo cientı́fico
A linguagem Python
Biblioteca Sympy
Cálculo cientı́fico
Biblioteca Pandas
Referências
# arrays especiais
print(zeros((2,2)))
print(ones((3,3)))
print(eye(3))
print(diag([[1, 2, 3],[4,5,6]]))
print(diag(B))
print(rand(3,4))
print(tile(rand(3,1), (1, 5)))
print(M[2,1])
print(M[:2,1])
Linguagens na computação
Bibliotecas para cálculo cientı́fico
A linguagem Python
Biblioteca Sympy
Cálculo cientı́fico
Biblioteca Pandas
Referências
figure()
contourf(xq,yq,z,50);
axis([-5,5,-5,5]);colorbar()
xlabel(’x’)
ylabel(’y’)
show()
Linguagens na computação
Bibliotecas para cálculo cientı́fico
A linguagem Python
Biblioteca Sympy
Cálculo cientı́fico
Biblioteca Pandas
Referências
x=np.arange(0,100,5)
y=2+0.5*x
yr=y+np.random.normal(0,3,len(x))
figure()
plot(x,y,’-r’,x,yr,’.b’)
show()
print(describe(yr))
teste,pvalue=shapiro(yr)
print(’Teste Shapiro-Wilk: p_value=’,pvalue)
m,b,r,p,stderr=linregress(x,yr)
print(u’Regressão linear\nm=’,m,’\nb=’,b,
’\nr=’,r,’\np_value’,p,’\nerro=’,stderr)
figure()
plot(x,y,’-r’,x,m*x+b,’-g’,x,yr,’.b’)
show()
Linguagens na computação
Bibliotecas para cálculo cientı́fico
A linguagem Python
Biblioteca Sympy
Cálculo cientı́fico
Biblioteca Pandas
Referências
Sympy
Linguagens na computação
Bibliotecas para cálculo cientı́fico
A linguagem Python
Biblioteca Sympy
Cálculo cientı́fico
Biblioteca Pandas
Referências
sp.plot(f(x)); # gráfico de f
print(’Zeros de f’)
fzeros=sp.solve(sp.Eq(f(x),0),x)
display(fzeros)
pt=sp.plot((f(x),(x,-10,10)),(g(f(x)),(x,-10,10)),show=False)
pt[0].line_color=’r’; pt[0].label=’f’
pt[1].line_color=’k’; pt[1].label=’gof’
pt.ylabel=’y’; pt.ylabel=’y’
pt.title=u’Gráficos de $f$ e $gof$’
pt.legend=True
pt.show()
Linguagens na computação
Bibliotecas para cálculo cientı́fico
A linguagem Python
Biblioteca Sympy
Cálculo cientı́fico
Biblioteca Pandas
Referências
# DERIVADAS
d1f=sp.diff(f(x),x)
d2f=sp.diff(f(x),x,2)
display(sp.Eq(sp.Derivative(f(x),x),d1f))
display(sp.Eq(sp.Derivative(f(x),x,2),d2f))
display(sp.Eq(sp.Eq(sp.Derivative(f(x),x,2),d2f),sp.simplify(d2f),evaluate=False))
# INTEGRAIS
intg=sp.Integral(f(x),(x,-1,5))
display(sp.Eq(intg,intg.doit()))
Linguagens na computação
Bibliotecas para cálculo cientı́fico
A linguagem Python
Biblioteca Sympy
Cálculo cientı́fico
Biblioteca Pandas
Referências
S=a0/2+sp.Sum(an*sp.cos(n*sp.pi*t)+bn*sp.sin(n*sp.pi*t),(n,1,sp.oo))
display(S)
Linguagens na computação
Bibliotecas para cálculo cientı́fico
A linguagem Python
Biblioteca Sympy
Cálculo cientı́fico
Biblioteca Pandas
Referências
Pandas
Pandas é uma biblioteca para análise de dados estruturados em
forma tabular (DataFrames). Trabalha integrada com o scipy e
pylab.
Eis um exemplo:
# -*- coding: utf-8 -*-
from __future__ import division
from __future__ import print_function
import pandas as pd
from pylab import *
excel_file="FEMURS_ALL_MEASURES.xlsx"
sheetN=’X_AUT’
sheet=pd.read_excel(excel_file,
sheetname=sheetN,header=0,
skiprows=[1],index_col=0)
print(sheet)
print(sheet[’AGE’].describe()) # estatística
Pandas
Linguagens na computação
Bibliotecas para cálculo cientı́fico
A linguagem Python
Biblioteca Sympy
Cálculo cientı́fico
Biblioteca Pandas
Referências
Processamento de Imagem
# -*- coding: utf-8 -*-
from pylab import *
from cv2 import VideoCapture # computer vision
from skimage import filters # proc. imagem
camera = VideoCapture(0) # ativa a porta da câmara
s=raw_input(’Press Enter to capture’)
flag, image = camera.read()
flag, image = camera.read() # regista a 2a frame
RGB=image[:,:,[2,1,0]] # BGR > RGB
del(camera) # fecha a porta
cinza=uint8(mean(RGB,2)) # processa imagem
bw=cinza>filters.threshold_otsu(cinza)
edges=filters.sobel(bw)
figure(1) # mostra resultados
subplot(2,2,1); imshow(RGB);axis(’off’)
subplot(2,2,2); imshow(cinza,cmap=cm.gray);axis(’off’)
subplot(2,2,3); imshow(bw,cmap=cm.binary);axis(’off’)
subplot(2,2,4); imshow(edges,cmap=cm.binary);axis(’off’)
imsave(’edges.png’,edges)
show()
ATS Cálculo cientı́fico com Python
Linguagens na computação
A linguagem Python
Cálculo cientı́fico
Referências
Referências
Linguagens na computação
A linguagem Python
Cálculo cientı́fico
Referências
Referencias
3] Sympy
http://docs.sympy.org/latest/index.html
15/04/2018.
Obrigado...