Science">
Nothing Special   »   [go: up one dir, main page]

Python para Engenheiros PDF

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 39

Tabela

de conteúdos
Introdução 1.1
Capítulo 1 - apenas o aperitivo... 1.2
Uma brevíssima introdução sobre a linguagem Python 1.2.1
Dicas de instalação e configuração (o que, e o porquê) 1.2.2
O que são os "módulos Python" 1.2.3
O módulo numpy 1.2.4
O módulo scipy 1.2.5
O módulo matplotlib 1.2.6
O Ipython e o Jupyter Notebook 1.2.7
Spyder "apenas" mais um dos ambientes de computação científica do Python
Interfaces Gráficas com o Usuário (en: GUI) - as inúmeras alternativas 1.2.8

Relatórios PDF ou outros formatos? ans: Reportlab 1.2.10 1.2.9


Documentar é necessário? ans: Sphinx 1.2.11
Debugar pra quê? ans: Python Tools for Visual Studio e outras alternativas 1.2.12
Conectividade-I/O: existe algo que não possa trocar informações com "scripts
Python"? 1.2.13
Portais/páginas web, é fácil fazer? Django, web2py, turbogears, etc. 1.2.14
Simulação, otimização, diversão - integração com OpenModelica e JModelica
Simulação discreta? ans: simpy 1.2.16 1.2.15
Visualizaçao de dados em gráficos interativos? ans: bokeh, VisPy e seaborn
Breves dicas de outros módulos úteis-interessantes-curiosos-ousados 1.2.17

Capítulo 2 - numpy, scipy and matplotlib - baby steps 1.3 1.2.18


Tópicos básicos sobre o módulo numpy 1.3.1
Manipulações e operações em/com numpy.arrays 1.3.2
Scipy e interpolações 1.3.3
Scipy e otimizações 1.3.4
Scipy e integração numérica 1.3.5
Capítulo 3 - numpy, scipy, matplotlib and pint - teenager steps 1.4
Pint - Unidades de Medida (consistência nos cálculos, análise dimensional, etc.)
Scipy e sistemas LTI (Linear Time Invariant Systems) 1.4.2 1.4.1

1
Matplotlib - dicas práticas para o dia a dia de um analista 1.4.3
Matplotlib e gráficos interativos (widgets, comandos, etc.) 1.4.4
Capítulo 4 - interagindo com o tal usuário através de GUI's... 1.5
TkInter - nativo, fácil, portável... 1.5.1
PyQt - poderoso, muito mais fácil, mega-trans-portável 1.5.2
Capítulo 5 - não basta analisar, é preciso reportar! 1.6
Dicas básicas para usar o módulo reportlab 1.6.1
Capítulo 6 - minha documentação é o código... 1.7
Capítulo 7 - quem debuga, não erra (ou vice-versa?)... 1.8
Capítulo 8 - serialização, conectividades e I/O's 1.9
pickle, xml, json, etc. 1.9.1
Banco de dados relacionais - SQL Queries 1.9.2
Bases de dados No-SQL 1.9.3
OPC DA/HDA Classic 1.9.4
OPC UA 1.9.5
Modbus 1.9.6
Web Scraping 1.9.7
Capítulo 9 - world wide Python web 1.10
Qual framework escolher? 1.10.1
Capítulo 10 - mundo de mentirinha... 1.11
O que é: Modelica? 1.11.1
O OpenModelica, o Python e a simulaçao 1.11.2
O JModelica, o Python e a simulaçao 1.11.3
Capítulo 11 - mundo discreto e estoácstico de mentirinha.... 1.12
Capítulo 12 - interagindo pra valer com gráficos! 1.13
Capítulo 13 - dicas imperdíveis, algumas até ousadas! 1.14
Apêndice A - Fundamentos básicos 1.15
Glossário 1.16

2
Introdução

Python para Engenheiros e outros


curiosos ousados

Introdução
A ideia de escrever este material partiu da constatação do quão útil foi (ou pelo menos
parece ter sido) o manual que escrevi em conjunto com meu amigo Luciano Farina sobre a
utilização do Matlab com enfoque especial para as "Engenharias". Ele foi escrito no final da
década de 90 (sim, no século passado) com o objetivo de compartilhar nossos
conhecimentos e disseminar a utilização desta ferramenta, principalmente no meio
acadêmico.

Hoje este manual (e suas diversas versões) pode ser encontrado em inúmeros sites onde
são compartilhados documentos (daí a inferência sobre a sua utilidade), mas localizei uma
fonte que conheço e recomendo para quem quiser baixar uma das suas versões: está na
página pessoal do professor Argimiro da COPPE-UFRJ: Matlab - Feramenta matemática
para Engenharia .

Atualmente deixei o Matlab de lado e passei a brincar com o Python, uma linguagem de
programação interpretada e extremamente poderosa, tão poderosa que, em diversos
aspectos se "assemelha" bastante ao ambiente do Matlab, porém, por não ser apenas uma
"plataforma matemática", ela abre novos horizontes de possibilidades, no mínimo,
instigantes!

Ao longo deste documento pretendo abordar os inúmeros "casos de uso" apresentados no


manual que escrevi em conjunto com meu colega, porém sob uma nova perspectiva, a
proporcionada pela linguagem Python!

O primeiro capítulo é um "grande resumão" sobre o Python e de todos os módulos


(bibliotecas em linguagem Python, "equivalente" aos toolboxes do Matlab) que já "brinquei"
e que julgo extremamente úteis para Engenheiros e curiosos-ousados. Ele dá uma visão
geral do potencial que esta linguagem de programação disponibiliza de maneira simples,
rápida e eficiente.

Os capítulos subsequentes pretendo ir populando com conteúdos relacionados, de certa


forma, ao manual original, porém com uma dinâmica mais de Cookbook do que de um texto
teórico-formal-chato, como esta introdução que parece não acabar nunca.

Bem, dito isto, mãos à obra!!!

3
Introdução

4
Capítulo 1 - apenas o aperitivo...

Capítulo 1 - apenas o aperitivo...


Este capítulo introdutório abordará, de maneira sucinta - claro - as principais questões
relacionadas à linguagem Python a fim de estabelecermos um ponto de partida comum em
um ambiente minimamente utilizável para os tópicos que se seguirão, uma vez que temos a
intenção de oferecer um conteúdo prático-pragmático, que pode ser seguido pelo leitor para
auxiliar na consolidação dos conhecimentos.

Sendo assim, a primeira tarefa prática que sugerimos fazer é uma pesquisa na World Wide
Web (WWW) sobre a linguagem Python, antes mesmo de dizermos qualquer coisa. Tenho
certeza que o leitor vai ficar impressionado com o resultado – nas mais diversas áreas do
conhecimento, utilizado pelas mais diversas “empresas & instituições” e para os mais
diversos fins. Isso também auxilia a justificar a necessidade de “restringirmos” nosso foco
aos “Engenheiros” e “Curiosos Ousados” para que possamos construir algo “minimamente
útil”, não tão amplo e genérico que apenas fica margeando conceitos sem nos dar algo
concreto em troca!!!

Nota

Vale ressaltar que pretendemos seguir as regras do nosso “bom português” no que
tange à utilização de “palavras” no gênero masculino quando nos dirigirmos a um
“leitor genérico”, sem nos preocuparmos com questões sexistas, que via de regra
enfatizam a discriminação através da utilização dos dois gêneros (ex.: leitor/leitora,
curioso/curiosa, ousado/ousada, etc.) além de deixar o texto mais enfadonho – enfim
esta é a nossa opinião, tens todo o direito de discordar!

5
Uma brevíssima introdução sobre a linguagem Python

Uma brevíssima introdução sobre a


linguagem Python
A linguagem de programação Python é interpretada, ou seja, não é necessário compilar o
código escrito por um humano para gerar outro em um formato que o computador
“entende”. Na verdade, é criado um arquivo intermediário que visa agilizar o processo de
execução dos Scripts, que só é atualizado quando o Script que o originou foi alterado.

Esta característica de ser uma linguagem interpretada auxilia muito nos processos de
prototipação de softwares, uma vez que agiliza o processo de escrita de código e análise
dos resultados – típica metodologia de programação feita por Engenheiros! Por esta
característica também pode assumir o caráter de “poderosa ferramenta de análise”,
incorporando-se ao arsenal que um Engenheiro tem à sua disposição para resolver suas
demandas cotidianas!

Em resumo, através da linguagem Python é possível resolver problemas típicos de cálculo


numérico (interpolações, otimizações, integrações, derivações, álgebra linear, etc.), bem
como estatísticos, visualizando os resultados em gráficos dos mais variados tipos
(tendências, dispersão, pizza, barra, box-plot, bode, etc. – matplotlib gallery) e compartilhar
tudo via web e/ou documentos em PDF, por exemplo, isso tudo apenas para começar...

Muito mais detalhes sobre a linguagem Python pode ser encontrado em: Python Software
Foundation e em inúmeros materiais disponibilizados na WWW, mas acredito que para um
Engenheiro, o que foi dito já é mais que suficiente para motivar a continuação da leitura
deste material!

6
Dicas de instalação e configuração (o que, e o porquê)

Dicas de instalação e configuração (o que,


e por quê)
A primeira dúvida que costuma surgir aos iniciantes no universo Python é: qual versão do
Python instalar?!

Sim, esta dúvida é procedente uma vez que, mesmo após o lançamento da versão 3 do
Python, a versão 2.7 continuou sendo mantida e atualizada.
Atualmente ambas versões estão disponíveis para download no site Python Software
Foundation

Então, qual escolher?!

Sem dúvida alguma a última versão traz inúmeros benefícios e melhorias, vale a pena
entrar no site mencionado anteriormente para conferir, porém, existem muitos módulos
Python que foram desenvolvidos pela comunidade e que não foram ainda migrados para a
última versão. Este número é tão expressivo que a dúvida na escolha da versão é uma
questão recorrente que ainda persiste!

Hoje, para quem quer brincar com análises de dados ou computação científica, “deve” optar
pela última atualização da versão 2.7. Esta é (hoje-2016) a versão que a comunidade
científica mais vem adotando para estudos, desenvolvimentos, etc., justamente pelos
motivos já mencionados.

OK – uma vez escolhida a versão basta baixar o Python e instalar?

Não, ou melhor, sim, caso queiras ter um bom trabalho instalando mais um monte de
“coisas úteis” que, em geral, um Engenheiro precisa.

Nós recomendamos instalar o Anaconda!

7
Dicas de instalação e configuração (o que, e o porquê)

Sei que alguns vão achar engraçado trocar uma “serpente” por outra, mas este não é o
caso. O Anaconda que nos referimos nada mais é do que uma plataforma para computação
científica que inclui o Python, ou seja, além de instalar o Python, já instala e configura um
monte de outros recursos e módulos que aceleram o processo de “montagem” de um
ambiente científico e de análises.

Então baixe a última versão do Anaconda (que utiliza o Python 2.7) e instale! Ao final,
muitos dos módulos e recursos que abordaremos neste material já estarão disponíveis e
prontos para utilização!

Uma vez instalado o Python, é possível abrir algum dos seus IDE’s (pesquisar na WWW, o
IDLE em geral vem junto com algumas instalações) e executar diretamente alguns
comandos nele.

Quem não instalou ainda e mesmo assim quer brincar, é possível executar comandos
diretamente no ambiente disponibilizado no site Python Software Foundation. Para tanto,
basta selecionar a opção: Launch Interactive Shell

Vamos iniciar com um probleminha simples: criar uma lista com 8 elementos contendo a
avaliação da parábola para os valores inteiros de 0 a 7, inclusive. Para tanto, basta
executar a seguinte linha de comando:

y = [ x**2 for x in range(8)]


print(y)

Para aqueles que usaram o próprio site sugerido para executar os comandos acima, o
resultado deve ser este:

8
Dicas de instalação e configuração (o que, e o porquê)

A primeira linha cria uma lista (estrutura de dados a ser vista mais adiante) através da
função range() em um laço for com a avaliação dos valores de 0 a 7, inclusive, em uma
função que eleva elemento a elemento ao quadrado através do operador de potência . O
resultado é atribuído à variável e posteriormente mostrado na tela através da função
print().

Nota:
Sim, respondendo aos mais observadores e ousados, as listas são estruturas de dados
representadas entre colhectes [ ] com os elementos (qualquer coisa) separados por
vírgulas , , simples, não?!
Ah! E sim também para o operador de potenciação que é representado por dois
asteriscos , e não pelo acento circunflexo como em algumas linguagens.

Para quem prefere brincar com strings, vale experimentar este exemplo e ver o resultado:

s = [ “a_” + str(i) for i in range(10)]


print(s)

Neste exemplo utilizamos a função str() que converte dados numéricos em strings (“formato
texto”). Notar que as strings em Python podem ser representadas entre aspas duplas " ", ou
aspas simples ' '.

E, para aqueles que preferem trabalhar com datas e horas, olha que fácil:

import datetime as dt
dia = [dt.datetime(2016, 6, 6) + dt.timedelta(days=i) for i in range(3)]
print(dia)

Neste caso importamos o módulo datetime, que nada mais é que uma biblioteca nativa do
Python para trabalhar com dados do tipo “data-hora”. A seguir veremos um pouco mais
sobre os módulos e como utilizá-los nos nossos scripts/programas/análises, mas já fica a

9
Dicas de instalação e configuração (o que, e o porquê)

dica, é através do comando import, óbvio, não?!

Um pouco a mais...
Bem, como dissemos anteriormente, o Anaconda facilita muito o processo de instalação de
um conjunto de ferramentas para computação científica, como os módulos matemáticos e
gráficos, o ambiente científico (aplicativo) Spyder, o sensacional Jupyter Notebook -
excelente ambiente para análises, registro do memorial de cálculos, utilização para fins
didáticos, etc...etc...etc... - dentre inúmeras outras ferramentas que veremos ao longo deste
material.

Dito tudo isso, ainda resta dizer: tem sim um pouco mais... aliás, quando se trata de Python,
sempre tem um pouco mais - um pouco mais do mesmo e um pouco mais de coisas
diferentes e até mesmo inusitadas! Então vamos a mais alguns aplicativos que sugiro
pesquisar, claro que esta é a dica para os ousados (que são exatamente os que chegaram
até este ponto da leitura)!

Atom
É um editor de texto que roda em Linux, Mac e Windows - além de um visual moderno e
inúmeras ferramentas interessantes que facilitam e aceleram o processo de
desenvolvimento de scripts em Python, suporta inúmeros plugins direcionados
especificamente para esta linguagem.

Eclipse
Também pode ser utilizado apenas como um editor de textos, porém é muito mais que isso,
é um ambiente projetado para o desenvolvimento de software, suportando inúmeras
linguagens - dentre elas: Python, é claro, através do plugin PyDev.

Roda em Linux, Mac e Windows, disponibilizando um excelente ambiente para depuração


de código Python, muito útil principalmente em grandes projetos.

Dentre as funcionalidades de depuração, vale destacar a possibilidade de depurar um


código Python que está sendo avaliado por um outro programa (processo) - caso típico de
debugging attached to process - comum em aplicativos que usam o Python como linguagem
de script (ex.: Libre Office, FreeCad, etc.) e/ou para desenvolvimento de plugins (ex.: Gimp,
Inkscape, Blender, QGis, etc.)!

PyCharm

10
Dicas de instalação e configuração (o que, e o porquê)

Similarmente ao Eclipse, o PyCharme também é um IDE, porém feito para o Python,


disponibilizando ferramentas equivalentes ao Eclipse em termos de depuração de código.

Roda em Linux, Mac e Windows, para usar free, deve-se optar pela versão Community.

Python Tools for Visual Studio - PTVS


Disponível também no github da Microsoft, é um plugin do Microsoft Visual Studio para
desenvolvimentos em Python, outro ambiente de desenvolvimento de softwares que
também suporta diversas linguagens além de Python.

Disponibiliza funcionalides de depuração análogas ao Eclipse e ao PyCharm, mencionados


anteriormente, porém roda apenas no Windows.

Elipse Plant Manager - EPM


É um sistema de gerenciamento de dados que segue o padrão OPC UA. Tipicamente
caracterizado como um PIMS (Plant/Process Information Management System), sendo
amplamente difundido na indústria para coletar dados de processo, armazená-los de
maneira eficiente e disponibilizá-los para visualizações e análises.

Atualmente este sistema roda no Windows e sua versão de demonstração tem apenas a
restrição de operar com 20 variávies, todas as demais funcionalidades e ferramentas estão
disponíveis, inclusive duas que temos interesse especial: o Dataset Analysis do EPM
Studio integrado ao Python (console e plugins), EPM SDK em linguagem Python e o
EPM Processor.

O primeiro é um ambiente para a análise de dados de processo (fundamentalmente séries


temporais) integrado ao Python, enquanto que o segundo é um módulo Python que
possibilita ler e escrever valores em variáveis de processo existentes no sistema EPM
(utilizando OPC UA), por fim, o terceiro é um sistema gerenciador de execução de scripts
em Python sob demanda ou de maneira automática, segundo eventos prédefinidos em um
EPM Server.

Pela simples possibilidade de utilizar a versão de demonstração free, esta é uma excelente
escolha para armazenamento e análise de dados em pequenas aplicações - como em
laboratórios ou, por exemplo para automação residencial, coletando dados de um Arduino
e/ou Raspberry Pi para posteriores análises (perfis de temperatura, consumo de energia,
enfim, o que a criatividade permitir).

Vale a pena dar uma passada no meu canal no Youtube para conferir as possibilidades que
esta ferramenta oferece.

11
Dicas de instalação e configuração (o que, e o porquê)

12
O que são os "módulos Python"

O que são os "módulos Python"


Quando lemos: “módulos Python” podemos interpretar quase que diretamente como sendo
bibliotecas; o “quase que diretamente” deve-se ao fato de que alguns trazem outros
recursos e facilidades adicionais que transcendem o simples conceito de biblioteca (são
verdadeiros frameworks!).

Então, para utilizarmos estes módulos, a primeira coisa a fazer é “carrega-los” no ambiente
ou script que pretendemos executar. Esta é uma operação que se tornará recorrente na
utilização de scripts Python: a importação de módulos ao ambiente para
utilização/chamadas de seus recursos/funções.

Existem diversas formas de carregar, ou melhor, importar uma biblioteca (ou melhor,
módulo), mas todas utilizam a palavra reservada import. Sem mais delongas, vamos
apresentar quatro formas de importar o módulo numpy para utilizar suas "funcionalidades":

Formato 1

# carregando o módulo numpy para o ambiente de trabalho (ou script)


import numpy
# criando um vetor de valores inteiros e atribuindo à variável v
v = numpy.array([1, 2, 3, 4, 5])

Neste primeiro caso o módulo é carregado, e para utilizar suas funcionalidades (classes,
funções, etc.) é preciso sempre escrever numpy. seguido da "funcionalidade" desejada, no
exemplo acima é a construção de um objeto do tipo array do numpy.

Formato 2

import numpy as np
# criando um vetor de valores inteiros e atribuindo à variável v
v = np.array([1, 2, 3, 4, 5])

Neste segundo caso optou-se por criar um "apelido" para o módulo numpy, desta forma,
para chamar as "funcionalidades", basta usar o "apelido" np..

Nota

Esta é a forma mais usada e recomendada. Para quem for realmente curioso e ousado
sugiro uma rápida pesquisa na WWW sobre este tema!

Formato 3

13
O que são os "módulos Python"

from numpy import array


# criando um vetor de valores inteiros e atribuindo à variável v
v = array([1, 2, 3, 4, 5])

Nesta terceira forma o que está sendo efetivamente importado é a "funcionalidade" (classe)
que possibilita criar um objeto array do numpy. Notar que neste caso não é necessário usar
o nome do módulo antes da chamada da "funcionalidade", muito menos seu apelido (até
porque o mesmo nem foi dado)!

Nota

O "apelido" np ja está consolidado na comunidade Python para o módulo numpy,


assim como sp para o scipy, dentre outros que veremos mais adiante. Agora, se fores
realmente criativo e ousado, podes inventar o apelido que achares mais conveniente -
só não diz que eu não avisei quando chegarem as queixas de amigos que
eventualmente venham a ver teu código, ou mesmo quando pedires por auxílio nos
fóruns!!!

Formato 4

from numpy import *


# criando um vetor de valores inteiros e atribuindo à variável v
v = array([1, 2, 3, 4, 5])

Aparentemente este formato parece com o anterior no que diz respeito à utilização da
"funcionalidade", mas não se engane! Neste caso, absolutamente TODAS as
funcionalidades que se "localizam no nível logo abaixo do numpy" foram importadas! Desta
forma, não apenas a "funcionalidade" array pode ser chamada sem a necessidade do
numpy., mas também todas as demais!!
Isso se deve ao caractere asterisco , que funciona como um coringa!

Para os mais atentos, provavelmente surgiu a dúvida:

.. o que ele quis dizer com: "localizam no nivel logo abaixo do numpy..." ??!

Bem... este assunto diz respeito a como os módulos Python são organizados e, a princípio,
não pretendo abordar neste material; mas para os mais ousados recomendo fortemente
pesquisar na WWW por: "how to create python modules"!!!

14
O que são os "módulos Python"

Nota

Esta última forma de importação de módulos do Python NÃO é a mais recomendada -


motivo: pode acabar gerando "conflitos" de nomes de "funcionalidades", na verdade o
conflito estará apenas na cabeça de quem está digitando/brincando, pois para o
Python é fácil, ele vai "escolher" apenas um deles!!! Imaginem a situação de não saber
se a palavra array refere-se à classe do numpy, ou de qualquer outro módulo ou
variável!!!

Aos ousados, recomendo pesquisar na WWW por:"python namespace" !!!

Aos demais, deixa assim... o que foi dito já é muito mais que suficiente - MAS... só pra
garantir: usar o formato 2 !!!.

15
O módulo numpy

O módulo numpy
O numpy é o principal módulo para quem deseja trabalhar com computação científica.
Basicamente ele oferece toda uma infraestrutura para trabalhar com matrizes e álgebra
linear, sendo na maioria das vezes requisito básico para utilização de outros módulos, como
o próprio scipy, também para computação científica e que será visto no próximo tópico.

Para aqueles que já estão habituados a trabalhar com o Matlab, existe um tópico no tutorial
do numpy que traz um conjunto de operações básicas e suas respectivas sintaxes
comparando o numpy ao Matlab: NumPy for Matlab users. Eu, pessoalmente, recomendo
não ler, sugiro "recomeçar" estudando a linguagem Python sem os "velhos vícios"
decorrentes do "Matlab style"... [minha opinião...]

Apenas para dar uma breve ideia deste módulo, vamos ver alguns exemplos práticos da
sua utilização - mais detalhes serão abordados nos capítulos subsequentes.

16
O módulo numpy

>>> import numpy as np # carregando o módulo numpy e definindo o apelido "np"


>>> a = np.array([[1, 2, 3],[4, 5, 6]]) # criando uma matriz 2x3
>>> print(a)
[[1 2 3]
[4 5 6]]
>>> b = a.T # transpondo a matriz "a"
>>> print(b)
[[1 4]
[2 5]
[3 6]]
>>> c = np.dot(b, a) # multiplicação matricial, resultando em uma matriz 3x3
>>> print(c)
[[1 4]
[2 5]
[3 6]]
>>> d = c**2 # elevando elemento a elemento ao quadrado
>>> print(d)
[[ 289 484 729]
[ 484 841 1296]
[ 729 1296 2025]]
>>> print(np.ones((2,3), dtype=np.int)) # matriz 2x3 com os valores inteiros 1
[[1 1 1]
[1 1 1]]
>>> print(np.zeros((3,)) + np.random.rand(3)) # soma um vetor com zeros com outro alea
tório
[ 0.03798724 0.19997993 0.92542615]
>>> print(a.mean()) # média da matriz "a"
3.5
>>> print(a.sum()) # soma de todos elementos da matriz "a"
21
>>> print(a.shape) # dimensão da matriz "a"
(2, 3)
>>> print(a[-1] - a[0]) # subtração da última linha da matriz "a" pela primeira
[3 3 3]
>>> print(a[-1, -1] - a[0, 0]) # subtração do último elemento da matriz "a" pelo prime
iro
5
>>> print(np.ravel(a) > np.ravel(b)) # aplica a comparação "maior que" elemento a elem
ento de "a" com "b"
[False False True False True False]
>>> pos = np.hstack((np.ones((3,), dtype=np.bool), np.ravel(a) > np.ravel(b))) # másca
ra para pegar os 3 primeiros elementos e os demais segundo a>b
>>> print(pos)
[ True True True False False True False True False]
>>> print(np.ravel(c)[pos]) # pega apenas os elementos de "c" definidos como "true" pe
la máscara
[17 22 27 36 36]

Bem, estes foram apenas alguns exemplos de operações básicas que já precisei fazer um
dia - o numpy ainda tem muito mais coisa que veremos nos próximos capítulos - mas estes
exemplos já ajudam a resolver muitos problemas, além de poupar inúmeras linhas de

17
O módulo numpy

códigos com "laços FOR" e "cláusulas condicionais IF/ELSE"!!! :)

18
O módulo scipy

O módulo scipy
O scipy é, no nosso entendimento, o segundo principal módulo para quem deseja trabalhar
com computação científica. Ele tem como pré-requisito o numpy e oferece uma vasta gama
de funcionalidades, como por exemplo: interpolação, integração e derivação numérica,
resolução de equações diferenciais, otimização, processamento de sinais, álgebra linear,
matrizes esparsas, estatística, etc..

Por se tratar de um módulo bastante vasto e que oferece suporte a inúmeras áreas da
"matemática científica", ele é organizado de maneira hierárquica em diversos submódulos.
Assim, por exemplo, quem deseja trabalhar com interpolação, deverá importar o submódulo
interpolative que contém todas as funcionalidades relacionadas ao tema.

Mais sobre este módulo e seus submódulos serão vistos nos capítulos subsequentes, pois
a maioria dos exemplos requer uma visualização gráfica dos resultados para facilitar o seu
entendimento, e esta parte gráfica será vista a seguir, no tópico sobre o módulo da
matplotlib!

19
O módulo matplotlib

O módulo matplotlib
A matplotlib é, sem a menor sombra de dúvida: "O SONHO DE TODO ENGENHEIRO"!!!
Antes de prosseguir, vale a pena dar uma olhada na galeria de imagens do que é possível
fazer com este módulo: Matplotlib Gallery

O melhor de tudo é que não vou precisar escrever nada sobre este módulo nesta
introdução, pois uma simples visualização desta galeria de imagens/gráficos fala por si - se
ainda não clicaste no link acima, aproveita agora, última chance: Matplotlib Gallery!!!

Apenas para não dizer que não dissemos nada sobre a matplotlib:

1. Muiiito fácil de usar - "tipo Matlab" - inclusive foi baseada nos gráficos dele
2. Possibilidade de definir temas para os gráficos (usar os que já vem ou criar novos - o
tema padrão não é legal... :( )
3. Elementos gráficos organizados de maneira hierárquica, com possibilidade de acesso e
configuração de ABSOLUTAMENTE TUDO! (parte disso decorre do item 1)
4. Inúmeros tipos de gráficos "prontos": XY, bar, pie, boxplot, scatter, time series, radar,
polar, map (basemap), histogram, heatmap, boxplot, etc.
5. Gráficos interativos - vide WIDGETS - adição de botões, checkbox, slider, etc.
6. Apesar do item 4, para gráficos interativos recomendamos ver também: bokeh
(Interactive Web Plotting for Python), seaborn (statistical data visualization) e dash
(Python framework for building web applications).

20
O Ipython e o Jupyter Notebook

21
Spyder "apenas" mais um dos ambientes de computação científica do Python

22
Documentar é necessário? ans: Sphinx

23
Capítulo 2 - numpy, scipy and matplotlib - baby steps

Capítulo 2 - numpy, scipy and matplotlib -


baby steps

24
Tópicos básicos sobre o módulo numpy

25
Manipulações e operações em/com numpy.arrays

26
Capítulo 3 - numpy, scipy, matplotlib and pint - teenager steps

Capítulo 3 - numpy, scipy and matplotlib -


teenager steps

27
Capítulo 4 - interagindo com o tal usuário através de GUI's...

Capítulo 4 - interagindo com o tal usuário


através de GUI's...

28
Capítulo 5 - não basta analisar, é preciso reportar!

Capítulo 5 - não basta analisar, é preciso


reportar!

29
Capítulo 6 - minha documentação é o código...

Capítulo 6 - minha documentação é o


código...

30
Capítulo 7 - quem debuga, não erra (ou vice-versa?)...

Capítulo 7 - quem debuga, não erra (ou


vice-versa?)...

31
Capítulo 8 - serialização, conectividades e I/O's

Capítulo 8 - serialização, conectividades e


I/O's

32
Capítulo 9 - world wide Python web

Capítulo 9 - world wide Python web

33
Capítulo 10 - mundo de mentirinha...

Capítulo 10 - mundo de mentirinha...

34
Capítulo 11 - mundo discreto e estoácstico de mentirinha....

Capítulo 11 - mundo discreto e estocástico


de mentirinha....

35
Capítulo 12 - interagindo pra valer com gráficos!

Capítulo 12 - interagindo pra valer com


gráficos!

36
Capítulo 13 - dicas imperdíveis, algumas até ousadas!

Capítulo 13 - dicas imperdíveis, algumas


até ousadas!

37
Apêndice A - Fundamentos básicos

Apêndice A - Fundamentos básicos


Tipos

Operadores

Controle de Fluxo

Funções

38
Glossário

Glossário

Scripts
Usamos o termo Script para designar um arquivo ASCII com um conjunto de instruções (em
linguagem Python, claro) que serão interpretadas e executadas pelo computador quando o
mesmo for avaliado. A avaliação de um Script pode ser feita diretamente através da
execução deste Script em uma linha de comando (shell, console Dos, etc.), executando-o
integralmente.

IDE
Do inglês Integrated Development Environment, é um Ambiente de Desenvolvimento
Integrado, que no caso do Python possibilita a execução de comandos e/ou scripts. Em
muitas instalações do Python o IDE que vem junto é o IDLE, porém existem inúmeros
outros – o que recomendamos é o do IPython, pela sua simplicidade e inúmeras facilidades
disponibilizadas.

39

Você também pode gostar