/Tutoria_de_Python-BRISA

Repositório destinado a ser uma tutoria básica de Python para Análise de Dados do projeto BRISA

Primary LanguageJupyter NotebookMIT LicenseMIT

Tutoria de Python para Análise de Dados - BRISA

Descrição

  Repositório destinado a ser uma tutoria de Python para o projeto BRISA. O leitor será introduzido a linguagem e bibliotecas relevantes a análise de dados (Pandas, Numpy e MatPlotlib), além de tecnologias que aumentarão a eficiência na criação de um projeto.

Introdução Python

  • Descrição

  Python é uma linguagem de programação de alto nível, dinâmica, interpretada, modular, multiplataforma e que suporta uma arquitetura orientada a objetos.

  Por ser uma linguagem de sintaxe relativamente simples e de fácil compreensão, ganhou popularidade entre profissionais da indústria tecnológica que não são especificamente programadores, como engenheiros, matemáticos, cientistas de dados, pesquisadores e outros.

  Python é uma linguagem poderosa, possui uma grande comunidade e uma vasta quantidade de bibliotecas, o que faz com que essa seja uma linguagem muito versátil e de fácil aprendizado devido ao grande número de documentações. A seguir estão algumas dass principais áreas onde o Python é utilizado:


  1 - Scripting e automação: Algumas das bibliotecas para essa área são Pywin32 e Selenium;

  2 - Desenvolvimento web: A linguagem possui uma extensa variedade de frameworks para todos os tipos de gosto, entre eles os famosos Django, Flask e FastAPI;

  3 - Enquadramento de testes: Isso justifica por que desenvolvedores de software em Python adoram utilizar TDD (Test Driven Development). Para mais informações sobre essa técnica, acesse TDD;

  4 - Big Data: Para essa área o Python tem como a principal biblioteca o Pandas;

  5 - Ciência de dados: Nesse tutorial iremos focar nessa área, onde vamos conhecer as bibliotecas Pandas, NumPy e MatPlotlib;

  6 - Computação gráfica: Pacotes de soluções para esta área, como PyOpenGL e PyGame;

  7 - Inteligência artificial: Entre as bibliotecas mais comuns voltadas ao aprendizado de máquina estão o TensorFlow, PyThorch, Theano, Keras.


  • Vantagens

    • É fácil de aprender

    • É portátil e multiplataforma

    • É open source e gratuito

    • Oferece múltiplas possibilidades de desenvolvimento

    • É uma linguagem “curinga”


  • Desvantagens

    • Aplicações que lidam diretamente com o hardware

    • Aplicações onde o hardware não é escalável

    • Aplicações de missões críticas que processam dados em tempo real

    • Aplicações nativas com interfaces gráficas

    • Aplicações com vida útil muito longa


  • Instalação

    • Linux

      • Red Hat, CentOS, or Fedora

        dnf install python3 python3-devel
        
      • Debian or Ubuntu

        apt-get install python3 python3-dev
        
      • Gentoo

        emerge dev-lang/python
        
      • Arch Linux

        pacman -S python3
        
    • Windows

  Para fazer o Download do Python para Windows acesse o site Python Download


Introdução PyPI e pip

  • Descrição

  O PyPI é um repositório centralizado que hospeda milhares de pacotes de software desenvolvidos pela comunidade Python. Ele permite que os desenvolvedores compartilhem suas bibliotecas, frameworks e ferramentas com outros usuários do Python em todo o mundo. O PyPI desempenha um papel fundamental na promoção do compartilhamento e da colaboração dentro da comunidade Python.

  O PyPI possui uma interface da web que permite aos desenvolvedores pesquisar e explorar pacotes disponíveis. Você pode procurar por palavras-chave, categorias ou nome do pacote. Além disso, você pode obter informações detalhadas sobre um pacote específico, como a versão mais recente, a documentação e os requisitos de instalação.


  • Instalando pacotes do PyPI

  A instalação de pacotes do PyPI é simples e pode ser feita usando a ferramenta pip. Com o pip, você pode especificar o nome do pacote que deseja instalar e ele cuidará de baixar e instalar todas as dependências necessárias automaticamente.


  • Mas a final o que é pip ?

  O pip é um sistema de gerenciamento de pacotes padrão utilizado para instalar e gerenciar pacotes de software escritos na linguagem Python.

  Além disso, a maioria das distribuições do Python já vem com o pip pré-instalado, então muito provavelmente você já possui esse gerenciador instalado em sua máquina. Caso não possua, acesse aqui.

  Primeiramente, devemos entender que o comando pip deve ser executado em linha de comando para realizar a instalação dos pacotes. Por exemplo, se você quer instalar um pacote é necessário utilizar o comando abaixo:

pip install nome-de-algum-pacote

  Além disso você também pode desinstalar um pacote utilizando o comando abaixo:

pip uninstall nome-de-algum-pacote 

Introdução Venv

  • Descrição

  O virtualenv(Venv) no Python é utilizado para isolar a versão do Python e das bibliotecas usadas em um determinado sistema. Caso você não utilize o Venv, todas as bibliotecas necessárias para seu sistema seriam instaladas no ambiente do sistema operacional.


  • Cenário

  Você foi contratado para desenvolver um sistema de análise de dados pela empresa A e para isso você utilizará o Python 3.7.4 e as bibliotecas pandas e numpy.

  Esta mesma empresa te contrata para montar um sistema de cadastro e você opta por utilizar o mesmo Python 3.7.4, porém, como você irá disponibilizar este sistema na intranet deles, você usa o Flask, psycopg2 (para acesso ao PostgreSQL) e o marshmallow.

  Você tem o hobby de criar jogos e resolve estudar o pygame, porém, a versão do Python escolhida é o 3.8.1

  Um amigo pediu para você fazer um web scrapping e você resolve testar o Python 3.9. Além disso, você irá utilizar as bibliotecas requests e bs4 (BeautifulSoup)


  • Solução

  Caso você não utilize Venv para cada projeto, você teria que utilizar o Python instalado no seu sistema e teria que colocar todas as bibliotecas nele. Isso causaria um problema de gerenciamento das bibliotecas.


  • Problema

  A passagem "para cada projeto" foi grifada, pois caso você utilize um Venv para todos os projetos, você resolve apenas o isolamento do ambiente frente ao Python do sistema operacional, porém não resolve o gerenciamento das bibliotecas usadas e nem teria a possibilidade de usar versões de Python diferentes.


  • Vantagem

  Caso você use a mesma biblioteca em dois projetos diferentes e necessite fazer o upgrade dela em um dos projetos, isso é possível com Venv. O mesmo caso, sem Venv, seria arriscado, pois você poderia "quebrar" o sistema que não necessita da atualização.

(Fonte: MARQUES, Paulo. 2020) [2]


  • Importante

  Para mais informações de como criar, gerenciar e como funcionam os Venv no Python, acesse a Documentação do Venv.

  Dica: Utilizem ou aprendam a utilizar um Venv, pois a maioria dos projetos em Python fazem uso dessa tecnologia, além disso ao utilizar Venv vocês diminiuem a possibilidade de inconsistência de versões de linguagem e de bibliotecas.


Introdução Pandas

  • Descrição

  Pandas é uma biblioteca para Ciência de Dados de código aberto (open source), construída sobre a linguagem Python, e que providencia uma abordagem rápida e flexível, com estruturas robustas para se trabalhar com dados relacionais (ou rotulados), e tudo isso de maneira simples e intuitiva.

  Para mais informações sobre essa tecnologia, acesse a documentação Pandas.


  • Curiosidade

  Apesar do nome da biblioteca ser associado ao mamífero da família de ursos, tal qual o Python é associado com a espécie de cobra erroneamente, o nome da biblioteca Pandas é derivado do termo Panel Data, um conceito em inglês relacionado ao campo de estudo da econometria.


  • Instalação

  Pandas pode ser instalado via pip do PyPI.

pip install pandas

Introdução NumPy

  • Descrição

  NumPy é o pacote fundamental para computação científica em Python. É uma biblioteca em Python que fornece um objeto de array multidimensional, vários objetos derivados (como arrays mascarados e matrizes) e uma variedade de rotinas para operações rápidas em arrays, incluindo operações matemáticas, lógicas, manipulação de forma, ordenação, seleção, I/O, transformadas de Fourier discretas, álgebra linear básica, operações estatísticas básicas, simulação aleatória e muito mais.

  Para mais informações sobre essa tecnologia, acesse a documentação NumPy.


  • Instalação

  Se você já possui o Python, pode instalar o NumPy utilizando:

pip install numpy

Introdução MatPlotlib

  • Descrição

  Matplotlib é uma biblioteca compreensiva para criação de visualizações estáticas, animadas, e interativas em Python. Para mais informações sobre essa tecnologia, acesse a documentação MatPlotlib.


  • Instalação

  Se você já possui o Python, pode instalar o MatPlotlib utilizando:

pip install matplotlib

Introdução ao FastAPI

  • Descrição

  O FastAPI é uma biblioteca Python que permite criar APIs RESTful e GraphQL de forma rápida e fácil. Ele é baseado em outras bibliotecas populares como o Starlette para o backend e o Pydantic para validação e parsing de dados. Com o FastAPI, é possível criar APIs seguras, documentadas e testáveis de maneira eficiente.

  Para mais informações sobre essa tecnologia, acesse a documentação FastAPI.


  • Instalação

  Se você já possui o Python, pode instalar o FastAPI utilizando:

pip install fastapi uvicorn

Gostou da ideia desse repositório ?

  Caso a resposta seja sim, fique a vontade para contribuir com este projeto, afinal o melhor jeito de aprender é fazer. Para contribuir basta ler o Código de Conduta para uma comunidade segura e respeitosa, além disso ler o Guia de Contribuição e, obviamente, se possuir qualquer dúvida, basta perguntar na área de Discussão, se quiser responder a perguntas nessa área também, fique a vontade.


Vamos Começar a Praticar

  Clique aqui para iniciar alguns exercícios -> Só vem


Referências Bibliográficas

[1] Kenzie Academy Brasil, "O que é Python ?". Acesso em 18/05/2023;

[2] Stack Overflow, "Para que serve o Venv no Python ?". Acesso em 22/05/2023;

[3] Alura, Pandas: o que é, para que serve e como instalar. Acesso em 22/05/2023;

[4] AMARAL, Douglas - PyPI: O ecossistema de pacotes do Python. Acesso em 24/05/2023;

[5] Programador Viking, Pip Python: 4 Formas De Utilização Desse Gerenciador de Pacotes. Acesso em 24/05/2023;