O Cientista de Dados Igor Bobriakov publicou um excelente post no site Data Science Central (ponto de encontro de Cientistas de Dados em todo mundo) sobre as principais bibliotecas Python para Data Science. O post original está em inglês, mas trazemos aqui para você a versão em português. Confira as Top 20 Bibliotecas Python Para Data Science.

A Linguagem Python continua a assumir posições de liderança na solução de tarefas e desafios em Data Science. A seleção das bibliotecas está separada por categorias e a maioria delas já são estudadas no curso gratuito Python Fundamentos Para Análise de Dados, aqui na DSA.

Ao lado do nome da biblioteca você encontra o total de commits no Github e o total de colaboradores.


Bibliotecas Principais e Estatísticas

1. NumPy (Commits: 17911, Colaboradores: 641)

Tradicionalmente, começamos nossa lista com as bibliotecas para aplicativos científicos e o NumPy é um dos principais pacotes nessa área. Ele é destinado ao processamento de grandes matrizes e matrizes multidimensionais, e uma extensa coleção de funções matemáticas de alto nível e métodos implementados possibilitam a execução de várias operações com esses objetos.

Durante o último ano, um grande número de melhorias foi feito na biblioteca. Além das correções de bugs e problemas de compatibilidade, as mudanças cruciais dizem respeito às possibilidades de estilo, ou seja, o formato de impressão dos objetos NumPy. Além disso, algumas funções agora podem manipular arquivos de qualquer codificação disponível no Python.

2. SciPy (Commits: 19150, Colaboradores: 608)

Outra biblioteca central para computação científica é o SciPy. Ele é baseado 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 á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.

3. Pandas (Commits: 17144, Colaboradores: 1165)

Pandas é uma biblioteca Python que fornece estruturas de dados de alto nível e uma grande variedade de ferramentas para análise. A grande 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.

4. StatsModels (Commits: 10067, Colaboradores: 153)

Statsmodels é um módulo Python que oferece muitas oportunidades para análise de dados estatísticos, 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 oportunidades. Assim, este ano trouxe melhorias de séries temporais e novos modelos de contagem, como o GeneralizedPoisson, modelos NegativeBinomialP, e novos métodos multivariados – análise fatorial, MANOVA e medidas repetidas dentro da ANOVA.


Visualização

5. Matplotlib (Commits: 25747, colaboradores: 725)

O Matplotlib é uma biblioteca de baixo nível 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.

6. Seaborn (Commits: 2044, Colaboradores: 83)

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 (Commits: 2906, Colaboradores: 48)

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 (Commits: 16983, Colaboradores: 294)

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 (Commits: 169, Colaboradores: 12)

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.


Machine Learning

10. Scikit-learn (Commits: 22753, Colaboradores: 1084)

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 enfrentaram 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.

11. XGBoost / LightGBM / CatBoost (Commits: 3277/1083/1509, Colaboradores: 280/79/61)

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 achamos que 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 muitos concursos foram vencidos com a ajuda desses algoritmos.

12. Eli5 (Commits: 922, Colaboradores: 6)

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 lidar. É 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.


Deep Learning

13. TensorFlow (Commits: 33339, Colaboradores: 1469)

O TensorFlow é um framework popular para aprendizagem profunda, desenvolvido no Google Brain. Ele fornece habilidades 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.

14. PyTorch (Commits: 11306, Colaboradores: 635)

O PyTorch é uma estrutura 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.

15. Keras (Commits: 4539, Colaboradores: 671)

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.


Distributed Deep Learning

16. Dist-keras / elephas / spark-deep-learning (Compromissos: 1125/170/67, Colaboradores: 5/13/11)

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 novamente as possibilidades de aprendizagem profunda. Portanto, dist-keras, elephas e spark-deep-learning 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

17. NLTK (Commits: 13041, Colaboradores: 236)

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.

As atualizações recentes desta biblioteca abrangem pequenas alterações nas APIs e compatibilidade e uma nova interface para o CoreNLP.

18. SpaCy (Commits: 8623, Colaboradores: 215)

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 do 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.

19. Gensim (Commits: 3603, Colaboradores: 273)

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 Scraping

20. Scrapy (Commits: 6625, Colaboradores: 281)

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.


Conclusão

Esta é a nossa coleção enriquecida de bibliotecas Python para Data Science em 2018. Comparando com o ano anterior, algumas novas bibliotecas modernas estão ganhando popularidade, enquanto as que se tornaram clássicas para tarefas científicas de dados estão melhorando continuamente. Data Science segue evoluindo e precisa cada vez mais de profissionais capacitados.

Aqui, uma tabela que mostra estatísticas detalhadas das atividades no Github.

Python

 

Equipe DSA

Traduzido do original em inglês: https://www.datasciencecentral.com/profiles/blogs/top-20-python-libraries-for-data-science-in-2018