Wednesday, May 6, 2020

Benvindo

Benvindo a Algoritmos e Python

Estamos oferecendo um treinamento em Python no Núcleo de Estudos Comparados e Internacionais (NECI). 


Este treinamento visa atender pesquisadores das áreas de Ciências Politicas e Sociais, portanto adaptado para pessoas deste background. 

O treinamento completo consistirá em três grandes módulos: uma introdução à algoritmos e a linguagem Python, um  aprofundamento de uso do Python em web scraping, data analysis e processamento de textos e finalmente um módulo avançado incluindo Machine Learning, estatística e técnicas avançadas.

A ementa para o primeiro módulo já pode ser vista aqui.

Dadas as particularidades do NECI estamos definindo o curso da seguinte forma:


  • o curso deverá ter uma aula semanal, com horário a ser definido para maior conveniência dos participantes.
  • as aulas serão práticas, estilo laboratório de programação com breve exposição prévia de conceitos.
  • para estudo em casa serão fornecidas páginas de exercícios e de estudo interativo na forma de Jupyter notebooks.
  • os participantes devem dispor de notebook próprio em casa para estudar e praticar usando paginas baixadas deste blog. Uma lista do material necessário pode ser vista aqui.
Se esta é sua primeira visita a este blog, leia todos posts antigos, desde o primeiro.  

Isto é muito importante porque este blog é parte inerente do curso e todos posts contém alguma informação que você supostamente deve saber.





Nota: Para ver posts antigos use a barra na direita, sob o título "Blog Archive".
Clique na setinha triangular ao lado do ano "2016" e vão aparecer os mêses. Clique na setinha de "April" (Abril) e aparece a lista de postagens. Selecione a primeira (a mais em baixo é a primeira).

Nota: Decidimos deixar o estudo de arquivos XML para a segunda parte deste curso, juntamente com arquivos HTML e web scrapping.



Mais informações serão postadas aqui ocasionalmente.




 

Tuesday, December 20, 2016

aviso de mudança

AVISO IMPORTANTE

Desde 20/12/2016 todo material de referência do curso foi movido do Dropbox para um repositório no GitHub onde ficará sem prazo definido.

O link para o site no GitHub está aqui: https://github.com/kreegah/neci-python 

Uma consequência  disto é que muitos links em posts e páginas deste blog ficam quebrados, não existindo mais os arquivos no site Dropbox.

 

Tuesday, December 6, 2016

adeus

Despedida

E assim chegamos ao fim deste curso introdutório de Python. 

O percurso foi breve, bem mais curto que deveria ter sido, mas nada é perfeito. Peço desculpas por ter faltado algumas aulas, devido a graves problemas familiares. Espero que este blog compense, inda que parcialmente, estas ausências.  Lutaremos á sombra, que mais fazer?

Nossa intenção original era  que este curso fosse a parte introdutória, com fundamentos da linguagem.

A parte seguinte iria incluir tópicos mais interessantes mas que requerem já algum domínio da linguagem Python:
  • Web scrapping (prá valer, não um mero download de arquivos!)
  • Data analysis, data frames, Panda, gráficos
  • Análise estatística, bayesiana ou não.
  • Machine learning, rêdes neurais, support vector machines, kernels, PCA, K-means, knn, SOM, etc.
O futuro dirá se vai haver esta segunda parte, mas mesmo que não aconteça o que vocês aprenderam aqui já lhes será muito útil. Acreditem, eu ví.




Aos colegas que acompanharam fielmente até o final, meus cumprimentos. Por favor não parem de programar em Python. Como eu lhes disse, programação tem muito de prática e a falta desta "enferruja" a gente mais depressa que imaginamos.

Sua recompensa será o domínio de uma linguagem moderna, provavelmente a que mais cresce no mundo em número de usuários.

Python é muito usado com Big Data e seu domínio e fluência vão lhes fazer muita diferença no futuro.

Um ultimo pedido, antes de partirmos: escrevam comentários sobre o que acharam do curso presencial e o que acharam deste blog. Criticas e elogios serão igualmente bem vindos.

al Khwarismi>> exit()

usando regex no python

Usando regex no Python

Expressões regulares são uma ferramenta muito útil para manipular textos e muitas outras coisas em programação e processamento de dados.

Quase todas linguagens de programação oferecem algum tipo de suporte ao uso de expressões regulares sob contrôle da execução de um programa.

O Python, é claro, não é exceção. Um módulo poderoso chamado re exporta funções e objetos que dão amplo suporte a qualquer aplicação de expressões regulares.

Em essência expressões regulares são strings de símbolos com significados específicos e bem definidos que representam padrões de textos.

Construir uma expressão regular (regex)  implica em descrever precisamente um determinado padrão que se deseja identificar num texto, usando os símbolos e a sintaxe das expressões regulares.

Nesta lição vamos assumir que o leitor já teve uma exposição prévia ao assunto expressões regulares.

Um curso específico de expressões regulares foi dado no NECI no primeiro semestre de 2016 e seu material pode ser baixado, conforme explicado nesta lição.

A lição está em notebook Jupyter e pode ser baixada aqui.



Uma versão HTML encontra-se na barra de Recursos ao lado.
 

Saturday, December 3, 2016

arquivos especiais - pdf e csv

Arquivos especiais - PDF e CSV

Arquivos no formato PDF são usados universalmente para artigos científicos e outros mais.

Uma razão para tanto é que o formato PDF (Portable Document Format) permite apresentar o documento com a mesma aparência não importando o computador, sistema operacional ou impressora usados.

Infelizmente isto tem um preço: o formato PDF é bastante complicado e é difícil  implementar software para manipulá-lo.

Nesta lição vamos ver módulos Python para extrair texto de arquivos PDF. 

O notebook Jupyter desta lição pode ser baixado aqui 

Na segunda parte da lição veremos como manipular arquivos do tipo CSV (Comma Separated Values), um formato muito simplificado de dados para planilha.

Arquivos CSV são arquivos simples de tipo texto. Assim mesmo há varias razões para usar o módulo csv do Python para manipulá-los.


Para os exercícios você precisa baixar alguns arquivos extras e colocá-los no mesmo diretório onde ficar o notebook Jupyter desta lição:
 


Como sempre uma versão HTML da lição está na barra de Recursos.

Friday, December 2, 2016

arquivos especiais, zip e pickle

Arquivos especiais - ZIP e pickle

Nesta lição vamos ver como manipular arquivos do tipo .zip.

Arquivos ZIP são containers, isto é, em vez de textos seu conteúdo são outros arquivos e/ou pastas com seus respectivos arquivos. Por esta razão na literatura arquivos ZIP são as vezes chamados de folders (pastas)

Mas a principal característica de arquivos ZIP é que os arquivos contidos neles estão comprimidos

Isto significa que ao inserir um arquivo X num arquivo ZIP, algoritmos sofisticados removem redundâncias no conteúdo de X, reduzindo o seu tamanho sem perder a informação original deste conteúdo. O arquivo original incluido dentro de um arquivo ZIP tem tamanho menor! (fora alguns casos especiais)

Com isto ganha-se tanto em espaço de memória poupado quanto em tempo de transmissão ou cópia do arquivo "zipado" (ZIP), comparado com transmitir seu conteúdo original.

Ao extrair os arquivos contidos num arquivo ZIP algoritmos são aplicados de modo a reconstituir perfeitamente seus conteúdos originais.



Outro tipo de arquivo especial do Python são os arquivos .pickle

Arquivos pickle são arquivos binários usados para armazenar objetos que estejam na memória de um programa Python em execução.  

Para nós basta saber usar este tipo de arquivo para guardar as estruturas de dados que já estudamos aqui: list, set, tuple e dict.

Durante a execução de um programa Python podemos abrir um arquivo pickle, recuperar  o seu conteúdo e sair usando a estrutura de dados correspondente do jeito como ela foi recuperada,.



 O notebook Jupyter correspondente a esta lição pode ser baixado aqui

Uma versão HTML encontra-se na barra de Recursos.

Wednesday, November 30, 2016

Arquivos especiais

Arquivos especiais - Excel 

A partir desta lição vamos ver como manipular diversos tipos de arquivos especiais, todos de grande importância na prática.

Os tipos de arquivos que iremos ver incluem:
  • xlsx
  • csv
  • pdf 
  • zip
  • xml
Todos eles ocorrem bastante na prática donde o interesse em saber manipulá-los.

Nosso primeiro tipo de arquivo especial será o tipo xlsx do poderoso Excel. 

O Jupyter notebook desta lição pode ser baixado aqui




Uma versão HTML da lição está nos Recursos, ao lado.



Nota: Decidimos deixar o estudo de arquivos XML para a segunda parte deste curso, juntamente com HTML e web scrapping.