Prévia do material em texto
............................................................................................................................... TECNOLOGIA EM GESTÃO DE TI - TIAGO DE SOUZA SILVA - RA 209372023 TRABALHO PORTFÓLIO LINGUAGEM PYTHON ........................................................................................................................................ GUARULHOS-SP 2023 TIAGO DE SOUZA SILVA PORTFÓLIO LINGUAGEM PYTHON Trabalho apresentado ao Curso de Tecnologia de Gestão de TI do Centro Universitário ENIAC para a disciplina Linguagem Python. Prof. LUCIO LUZETTI CRIADO GUARULHOS-SP 2023 Respostas ................................................................................................................... Aqui estão as 25 Bibliotecas Python Para Data Science, separada em categorias. Manipulação de Dados e Estatística 1. NumPy Tradicionalmente, começamos nossa lista com as bibliotecas para manipulação de dados e o NumPy é um dos principais pacotes nessa área. Numerical Python – ou apenas NumPy – é uma biblioteca Python para cálculos numéricos e científicos. O NumPy fornece vários recursos que Analistas e Cientistas de Dados podem usar para trabalhar com matrizes de alto desempenho. As matrizes NumPy fornecem vetorização de operações matemáticas, o que aumenta o desempenho das construções de loop em Python. Os objetos Pandas Series e DataFrame dependem principalmente de matrizes NumPy para todos os cálculos matemáticos, como fatiar elementos e executar operações vetoriais. 2. Pandas Pandas é uma biblioteca Python que fornece estruturas de dados de alto nível e uma grande variedade de ferramentas para análise. A principal característica deste pacote é a capacidade de traduzir operações bastante complexas com dados em um ou dois comandos. O Pandas contêm muitos métodos internos para agrupar, filtrar e combinar dados, bem como a funcionalidade de séries temporais. Tudo isso é seguido por indicadores de velocidade impressionantes. Houve alguns novos lançamentos recentes da biblioteca Pandas, incluindo centenas de novos recursos, aprimoramentos, correções de bugs e alterações de API. As melhorias consideram as habilidades do Pandas de agrupar e classificar dados, saída mais adequada para o método apply e o suporte na execução de operações de tipos personalizados. O Pandas é uma das principais ferramentas (junto com o NumPy) dos projetos da Formação Analista de Dados. 3. SciPy Outra biblioteca central para computação científica em Python é o SciPy. Essa biblioteca é baseada no NumPy e, portanto, estende seus recursos. A principal estrutura de dados SciPy é novamente uma matriz multidimensional, implementada pelo Numpy. O pacote contém ferramentas que ajudam a resolver problemas álgebra linear, teoria da probabilidade, cálculo integral e muitas outras tarefas. O SciPy recebeu grandes melhorias na construção, na forma de integração contínua em diferentes sistemas operacionais, novas funções e métodos e, o que é especialmente importante – os otimizadores atualizados. Além disso, muitas novas funções BLAS e LAPACK foram agrupadas. 4. StatsModels Statsmodels é um módulo Python que oferece muitas funcionalidades para análise estatística de dados, como a estimação de modelos estatísticos, a realização de testes estatísticos, etc. Com este pacote, você pode implementar muitos métodos de aprendizado de máquina e explorar diferentes possibilidades de plotagem. A biblioteca está em constante desenvolvimento, enriquecendo e trazendo novas funcionalidades, como melhorias nos objetos de séries temporais e novos modelos, como o GeneralizedPoisson, modelos NegativeBinomialP e novos métodos multivariados – análise fatorial, MANOVA e medidas dentro da ANOVA. Tudo isso é estudo na Formação Análise Estatística. Visualização de Dados e Dashboards 5. Matplotlib O Matplotlib é uma biblioteca para criar diagramas e gráficos bidimensionais. Com este pacote, você pode construir gráficos diversos, desde histogramas e gráficos de dispersão a gráficos de coordenadas não cartesianas. Além disso, muitas bibliotecas de plotagem populares são projetadas para trabalhar em conjunto com o matplotlib. Houve recentemente mudanças de estilo em cores, tamanhos, fontes, legendas, etc. Recebeu ainda melhorias no alinhamento automático de legendas nos eixos e, entre melhorias significativas de cores, há um novo ciclo de cores compatível com daltônicos.É possível até mesmo construir Dashboards com o matplotlib, conforme ensinamos na Formação Cientista de Dados. 6. Seaborn O Seaborn é essencialmente uma API de alto nível baseada na biblioteca matplotlib. Ele contém configurações padrão mais adequadas para o processamento de gráficos. Além disso, há uma rica galeria de visualizações, incluindo alguns tipos complexos, como séries temporais, diagramas conjuntos e diagramas de violino. As atualizações recentes cobrem principalmente correções de bugs. No entanto, houve melhorias na compatibilidade entre FacetGrid ou PairGrid e backends de matplotlib interativos aprimorados, adicionando parâmetros e opções às visualizações. 7. Plotly Plotly é uma biblioteca popular que permite construir facilmente gráficos sofisticados. O pacote é adaptado para trabalhar em aplicativos da web interativos. Entre suas visualizações notáveis estão gráficos de contorno, gráficos ternários e gráficos 3D. Os aprimoramentos contínuos da biblioteca com novos gráficos e recursos trouxeram o suporte para “várias visualizações vinculadas”, bem como a integração de animação e interferência. 8. Bokeh A biblioteca Bokeh cria visualizações interativas e escalonáveis em um navegador usando widgets JavaScript. A biblioteca oferece uma coleção versátil de gráficos, possibilidades de estilo, habilidades de interação na forma de vincular gráficos, adicionar widgets e definir retornos de chamada, além de muitos outros recursos úteis O Bokeh possui habilidades interativas aprimoradas, como uma rotação de rótulos categóricos, bem como aprimoramentos de pequenos campos de ferramenta de zoom e de dicas de ferramentas personalizadas. 9. Pydot Pydot é uma biblioteca para gerar grafos complexos orientados e não orientados. É uma interface para o Graphviz, escrita em Python puro. Com a sua ajuda, é possível mostrar a estrutura dos grafos, que muitas vezes são necessários ao construir algoritmos baseados em redes neurais e árvores de decisão. 10. Dash O Dash é baseado no Plotly e permite construir Dashboards de alto nível integrando código Python, HTML e CSS. É uma ferramenta poderosa quando o objetivo do projeto de Data Science é exatamente entregar um Dashboard analítico. Ensinamos o Dash na Formação Cientista de Dados. Machine Learning 11. Scikit-learn Este módulo Python baseado no NumPy e SciPy é uma das melhores bibliotecas para trabalhar com dados. Ele fornece algoritmos para muitas tarefas padrão de aprendizado de máquina e mineração de dados, como clustering, regressão, classificação, redução de dimensionalidade e seleção de modelo. Há vários aprimoramentos feitos na biblioteca. A validação cruzada foi modificada, fornecendo uma capacidade de usar mais de uma métrica. Vários métodos de treinamento, como vizinhos mais próximos e regressões logísticas receberam algumas pequenas melhorias. Finalmente, uma das principais atualizações é a realização do Glossário de Termos Comuns e Elementos de API que estão familiarizados com a terminologia e convenções usadas no Scikit-learn. O Scikit-learn faz parte de diversos projetos da Formação Cientista de Dados. 12.XGBoost / LightGBM / CatBoost Gradient Boosting é um dos algoritmos de aprendizado de máquina mais populares, que consiste em construir um conjunto de modelos elementares sucessivamente refinados, ou seja, árvores de decisão.Portanto, existem bibliotecas especiais projetadas para implementação rápida e conveniente desse método e XGBoost, LightGBM e CatBoost merecem atenção especial. Todos eles são concorrentes que resolvem um problema comum e são usados quase da mesma maneira.Essas bibliotecas fornecem implementações altamente otimizadas, escaláveis e rápidas do Gradient Boosting, o que as torna extremamente populares entre os Cientistas de Dados e os competidores do Kaggle, já que muitas competições de Data Science foram vencidas com a ajuda dessas bibliotecas. 13. Eli5 Frequentemente, os resultados das previsões de modelos de aprendizado de máquina não são totalmente claros e esse é o desafio que a biblioteca eli5 ajuda a tratar. É um pacote para visualização e depuração de modelos de aprendizado de máquina e acompanhamento do trabalho de um algoritmo passo a passo. Ele fornece suporte para as bibliotecas Scikit-learn, XGBoost, LightGBM, lightning e sklearn-crfsuite e executa as diferentes tarefas para cada uma delas. 14. PyCaret Para quem prefere uma ferramenta low-code para Machine Learning, o PyCaret pode ser uma boa opção. Com poucas instruções é possível realizar diversas tarefas do Pipeline de Machine Learning e que ainda oferece suporte à GPU. É uma ferramenta super amigável. Deep Learning 15. TensorFlow O TensorFlow é um framework popular para aprendizagem profunda (Deep Learning), desenvolvido no Google Brain.Ele oferece funcionalidades para trabalhar com redes neurais artificiais com vários conjuntos de dados. Entre as aplicações mais populares do TensorFlow estão a identificação de objetos, o reconhecimento de fala e muito mais. Há também diferentes “ajudantes” que rodam sobre o TensorFlow regular, como tflearn, tf-slim, skflow, etc. Esta biblioteca é rápida em novos lançamentos, introduzindo novos e novos recursos. Entre as mais recentes estão correções na vulnerabilidade de segurança em potencial e melhorias na integração do TensorFlow e da GPU, como a execução de um modelo de Estimador em várias GPUs em uma máquina. O TensorFlow faz parte de diversos projetos da Formação Engenheiro de Machine Learning. 16. PyTorch O PyTorch é uma biblioteca que permite executar cálculos de tensores com aceleração de GPU, criar grafos computacionais dinâmicos e calcular automaticamente gradientes. Além disso, o PyTorch oferece uma API rica para resolver aplicativos relacionados a redes neurais. A biblioteca é baseada no Torch, que é uma biblioteca de aprendizagem profunda de código aberto implementada em C com um wrapper em Lua. A API do Python foi lançada em 2017 e, a partir daí, o framework está ganhando popularidade e atraindo um número crescente de Cientistas de Dados e Engenheiros de IA. O PyTorch faz parte de diversos projetos da Formação Engenheiro de Machine Learning e da Formação Engenheiro de IA. 17. Keras Keras é uma biblioteca de alto nível para trabalhar com redes neurais, rodando sobre o TensorFlow, Theano, e agora, como resultado dos novos lançamentos, também é possível usar o CNTK e o MxNet como backends. Ele simplifica muitas tarefas específicas e reduz muito a quantidade de código. No entanto, pode não ser adequado para algumas coisas complicadas. Essa biblioteca recebeu melhorias no desempenho, usabilidade, documentação e melhorias na API. Alguns dos novos recursos são a camada Conv3DTranspose, o novo aplicativo MobileNet e as redes de auto-normalização. Trazemos o Keras na Formação Machine Learning. Distributed Deep Learning 18. Dist-keras / elephas Problemas de aprendizagem profunda estão se tornando cruciais hoje em dia, já que cada vez mais casos de uso exigem esforço e tempo consideráveis. No entanto, o processamento de uma quantidade tão grande de dados é muito mais fácil com o uso de sistemas de computação distribuída, como o Apache Spark, que expande as possibilidades de aprendizagem profunda. Por isso, dist-keras e elephas estão ganhando popularidade e se desenvolvendo rapidamente e é muito difícil destacar uma das bibliotecas, pois todas elas são projetadas para resolver uma tarefa comum. Esses pacotes permitem que você treine redes neurais baseadas na biblioteca Keras diretamente com a ajuda do Apache Spark. O aprendizado profundo do Spark também fornece ferramentas para criar um pipeline com redes neurais Python. Processamento de Linguagem Natural 19. NLTK O NLTK é um conjunto de bibliotecas, uma plataforma completa para Processamento de Linguagem Natural. Com a ajuda do NLTK, você pode processar e analisar texto de várias maneiras, aplicar tokenize e tag, extrair informações, etc. O NLTK também é usado para prototipar e construir sistemas de pesquisa. Trazemos o NLTK na Formação Machine Learning. As atualizações recentes desta biblioteca abrangem pequenas alterações nas APIs e compatibilidade e uma nova interface para o CoreNLP. 20. SpaCy O SpaCy é uma biblioteca de Processamento de Linguagem Natural com excelentes exemplos, documentação da API e aplicativos de demonstração. A biblioteca é escrita na linguagem Cython, que é a extensão C da Linguagem Python. Suporta quase 30 idiomas, fornece fácil integração de aprendizagem profunda e promete robustez e alta precisão. Outra grande característica do SpaCy é uma arquitetura projetada para todo o processamento de documentos, sem quebrar o documento em frases. Trazemos o SpaCy na Formação Machine Learning. 21. Gensim O Gensim é uma biblioteca Python para análise semântica robusta, modelagem de tópico e modelagem de espaço vetorial e é construído sobre o Numpy e o Scipy. Ele fornece uma implementação de algoritmos populares de PLN, como o Word2vec. Embora o Gensim tenha sua própria implementação de models.wrappers.fasttext, a biblioteca de fasttext também pode ser usada para uma aprendizagem eficiente de representações de palavras. Data e Web Scraping 22. Scrapy O Scrapy é uma biblioteca usada para criar bots spiders que varrem páginas web e coletam dados estruturados. Além disso, o Scrapy pode extrair dados de API. A biblioteca é muito útil devido à sua extensibilidade e portabilidade. Entre os avanços feitos ao longo do ano estão várias atualizações em servidores proxy e melhoria na notificação de erros e sistema de erros. Há também novas possibilidades nas configurações de metadados usando análise de escassez. 23. Beautiful Soup BeautifulSoup é uma biblioteca de mineração e extração de dados em Python que extrai dados de origem HTML e XML.Ele permite que os Cientistas de Dados desenvolvam um rastreador Web para raspar dados de páginas web. BeautifulSoup pode recuperar dados e estruturá-los no formato desejado. Os dados HTML raspados incluem muitos dados da Web embaralhados que os usuários não conseguem interpretar. Sua versão mais recente, BS4 (BeautifulSoup 4), organiza os dados confusos da web em estruturas XML fáceis de entender, permitindo a análise de dados.BeautifulSoup identifica codificações (encoding) automaticamente e interpreta documentos HTML sem problemas, incluindo aqueles com caracteres especiais. Podemos pesquisar em um documento analisado e encontrar o que estamos procurando nele. Trazemos essa biblioteca no curso gratuito de Web Scraping, disponível para quem adquire qualquer uma das Formações DSA. Data App e Banco de Dados 24. Streamlit Se o objetivo é criar Data Apps (apps de dados) então o Streamlit é um dos melhores da categoria. Você pode construir apps de exploração de dados, manipulação de dados, Machine Learning ou visualização de dados, tudo issocom pouco código e sua app estará rodando em navegadores web. Trazemos o Streamlit na Formação Linguagem Python Para Data Science. 25. SQLAlchemy SQLAlchemy é o kit de ferramentas de banco de dados em Python que ajuda a acessar Data Warehouses com eficiência. Ele apresenta os padrões mais amplamente implementados para acesso de banco de dados de alto desempenho. SQLAlchemy ORM e SQLAlchemy Core são os dois principais componentes do SQLAlchemy. Cobrindo APIs e características do banco de dados Python, o SQLAlchemy Core adiciona um nível de abstração. Ele também fornece instruções e esquemas SQL aos usuários. SQLAlchemy ORM é um mapeador objeto-relacional independente.O SQLAlchemy permite que os desenvolvedores controlem seus bancos de dados enquanto também automatizam atividades redundantes. Trazemos o SQLAlchemy na Formação Arquiteto de Dados. Python no desenvolvimento Web O Python é uma linguagem de programação para back-end. Desenvolvedores web podem usar códigos Python para transferir dados de/para servidores, interagir com bancos de dados e administrar a segurança de um site. Existem muitos frameworks Python usados com frequência no desenvolvimento web, como DJANGO e FLASK. Django: É um framework web de alto nível que enfatiza a eficiência e o desenvolvimento rápido. Ele inclui muitos componentes integrados, como um ORM (Object-Relational Mapping), autenticação, administração de painel e muito mais. O Django segue a filosofia "batteries included", o que significa que muitos recursos comuns já estão embutidos. Flask: É um microframework web que oferece flexibilidade para criar aplicativos web simples ou complexos. Ele fornece as ferramentas básicas para criar aplicações web, deixando aos desenvolvedores a liberdade de escolher as bibliotecas e extensões adicionais que desejam usar. Python no desenvolvimento de aplicações. Python é uma linguagem de programação versátil e poderosa que também é Amplamente utilizada para o desenvolvimento de aplicações além do âmbito web. Aqui estão algumas informações sobre o uso de Python no desenvolvimento de aplicações: Aplicações de Desktop: Python é usado para criar uma variedade de aplicações de desktop, desde simples utilitários até aplicativos mais complexos. A biblioteca Tkinter é uma das mais populares para a criação de interfaces gráficas de usuário (GUIs) em Python. Ela permite que os desenvolvedores criem janelas, botões, caixas de diálogo e outros elementos da interface. Aplicações Científicas e Técnicas: Python é muito popular entre cientistas, engenheiros e pesquisadores devido às suas bibliotecas especializadas. NumPy e SciPy fornecem funcionalidades para computação numérica e científica. Matplotlib e Seaborn são usados para criar gráficos e visualizações. Além disso, Jupyter Notebooks são amplamente utilizados para análise interativa e documentação de processos científicos. Automação e Scripts: Python é uma escolha popular para automação de tarefas repetitivas e criação de scripts. Sua sintaxe legível e simples torna mais fácil escrever scripts para realizar diversas tarefas, como manipulação de arquivos, processamento em lote, automação de tarefas de sistema, entre outras. Aplicações de Jogos: Embora Python não seja frequentemente associado a jogos complexos em comparação com linguagens como C++ ou C#, ele é usado para criar jogos simples, protótipos e jogos 2D. A biblioteca Pygame é uma opção popular para desenvolver jogos usando Python. Aplicações de Automação de Escritório: Python pode ser usado para criar ferramentas de automação de escritório, como macros e scripts para aplicativos como Excel, Word e PowerPoint. A biblioteca openpyxl, por exemplo, permite a manipulação de arquivos Excel diretamente em Python. Aplicações de Desktop Cross-Platform: Python permite criar aplicações de desktop multiplataforma com facilidade. As bibliotecas como PyQt e wxPython permitem criar interfaces gráficas que funcionam em várias plataformas, como Windows, macOS e Linux. Aplicações de Machine Learning e Inteligência Artificial: O ecossistema Python possui bibliotecas poderosas para o desenvolvimento de aplicativos de Machine Learning e Inteligência Artificial. Além de scikit-learn, TensorFlow e PyTorch, há também bibliotecas especializadas como spaCy para Processamento de Linguagem Natural (NLP) e OpenCV para visão computacional. Aplicações de Internet das Coisas (IoT): Python é frequentemente usado para criar aplicativos para dispositivos de Internet das Coisas devido à sua simplicidade e suporte a várias plataformas. Bibliotecas como MicroPython permitem que Python seja executado em microcontroladores e placas de desenvolvimento. CONCLUSÃO Foi possível constatar com essa pesquisa, que python e uma linguagem de programação muito usada em todas as áreas, pois ela possui uma gama grande de bibliotecas ,como encontrei e coloquei acima 25 bibliotecas, que auxiliam na criação de vários tipos de programas conforme a necessidade de cada problemática, além disso é uma linguagem fácil de programa, sendo assim é umas das preferidas pelos programadores e desenvolvedores de WEB, de Desktop, de Jogos, de Machine Learning e Inteligência Artificial, de Internet das Coisas (IoT), de Automação e Scripts, de Automação de Escritório, etc.