As Bibliotecas Preferidas dos Cientistas de Dados - Python

 Resultado de imagem para python libraries 




As Bibliotecas Preferidas dos Cientistas de Dados - Python

Python tem vindo a ganhar um grande espaço quando e fala em Ciência de Dados, atualmente é consideradas umas das melhores ferramentas para tal.
Como já falamos em outros artigos, uma das grandes vantagens de utilizar Python em Ciência de Dados, é a enorme diversividade de bibliotecas, que devido á sua grande qualidade, facilitam e muito nosso trabalho.

Para facilitar a análise, decidimos dividir as bibliotecas de Python em 6 categorias:
  • Bibliotecas Principais
  • Bibliotecas de Visualização
  • Bibliotecas de Machine Learning
  • Bibliotecas de Deep Learning
  • Bibliotecas de Processamento Natural
  • Bibliotecas de Mineração de Dados

Bibliotecas Principais

1- Numpy

Considerado um dos mais utilizados e fundamentais para computação científica no Python, segue suas principais caraterísticas
  • muito forte no uso de matrizes N-Dimensionais
  • ótima sofisticação de funções para transmissão
  • integração fácil com C; C++ e Fortran
  • algorge linear útil, transformada de Fourier e capacidades de números aleatórios
  •  vai além dos seus usos científicos, podendo ser utilizado para receber dados multidimensionais genéricos, permitindo uma integração com uma enorme variedade de bancos de dados 
  • licenciado sob a licença BSD, permitindo a reutilização com poucas restrições  

   2- Scipy

 De código aberto, muito utilizado para matemática, engenharia e ciência, muito bom para estatística, otimização, integração, álgebra linear e transformações Fourier. Também tem um ótimo desempenho em processamento de imagens.
A Scipy é dependente do Numpy, assim sendo para poder utilizar tal ferramenta, necessita de ter o Numpy importado, uma vez que a biblioteca Scipy é construída para  trabalhar com matrizes NumPy e fornece muitas rotinas numéricas amigáveis e eficientes, como rotinas para integração numérica e otimização. Numpy e Scipy juntos, podem funcionar em todos os SO mais utilizados do mercado. Não pense duas vezes em usar o Scipy sempre que precisar de manipular números e exibir seus resultados.

   3- Pandas

È uma das bibliotecas preferidas dos cientistas de dados, pois fornece estruturas de dados rápidas, flexíveis e muito expressivas, de forma a tornar o trabalho com dados , relacional ou rotulado, muito fácil e intuitivo.
Utilizado como elemento básico de construção em alto nível em análises práticas de dados em mundo real. 
Tem o objetivo mais amplo de se tornar a ferramenta de análise / manipulação de dados de fonte aberta mais poderosa e flexível disponível em qualquer linguagem. 
Devido ao seu potencial, não poderíamos deixar de listar algumas das melhores funcionalidades do Pandas.
  •  Manipulação de dados faltantes muito fácil em ponto flutuante e não flutuante.
  • Mutabilidade de tamanho: as colunas podem ser inseridas e excluídas do DataFrame e objetos dimensionais superiores.
  •  Alinhamento de dados automático e explícito: os objetos podem ser alinhados explicitamente com um conjunto de rótulos, ou o usuário pode simplesmente ignorar os rótulos e deixar Series, DataFrame, etc. alinhar automaticamente os dados para você em cálculos
  • Grupo poderoso e flexível por funcionalidade para executar operações split-apply-combine em conjuntos de dados, tanto para agregação quanto para transformação de dados
  • Facilita a conversão de dados irregulares e indexados de forma diferente em outras estruturas de dados Python e NumPy em objetos DataFrame
  • Corte inteligente baseado em etiquetas, indexação e subconjunto de grandes conjuntos de dados
  • Fusão e união intuitiva de conjuntos de dados
  • Remodelação flexível e pivô de conjuntos de dados
  • Rotulagem hierárquica de eixos (possível ter vários rótulos por marca)
  • Ferramentas robustas de IO para carregar dados de arquivos planos (CSV e delimitados), arquivos Excel, bancos de dados e salvar / carregar dados do formato ultrafast HDF5
  • Funcionalidade específica da série temporal: geração do intervalo de datas e conversão de frequência, estatísticas da janela em movimento, regressões lineares da janela móvel, mudança de data e atraso, etc

Bibliotecas de Visualização

  1- Matplotlib

Capacidade de gerar visualizações simples mas poderosas, considerado um programa de alto nível, tornando o Python (aliado a outras libs) um forte concorrente de ferramentas cientificas como o MalLab e Mathematica
Porém tem uma desvantagem, por ser uma biblioteca de baixo nível, é necessário escrever uma porção de código maior para poder alcançar níveis de visualização avançados, ainda assim vale a pena!

  2- Seaborn

Uma biblioteca baseada em Matplotlib, muito utilizada quando se pretende uma interface de alto nível para desenhar gráficos mais atraentes e com melhor qualidade.

  3- Plotly

Uma biblioteca gráfica muito utilizada para ser executas em navegadores web. Foi construída em cisa de plotly.js, torna-se uma biblioteca declarativa de alto nível. Por padrão vem com mais de 30 tipos de gráfico, incluindo científicos, 3D, estatísticos, mapas e muito mais.
Os gráficos podem ser visualizados em notebooks Jupyter, arquivos HTML autônomos ou hospedados online no plot.ly.

Bibliotecas de Machine Learning

 1- SciKit-Learn

A scikit-learn (originalmente scikits.learn) é uma biblioteca de aprendizado de máquina de código aberto para a linguagem de programação Python.[2] Ela inclui vários algoritmos de classificação, regressão e agrupamento incluindo máquinas de vetores de suporte, florestas aleatórias, gradient boosting, k-means e DBSCAN, e é projetada para interagir com as bibliotecas Python numéricas e científicas NumPy e SciPy.

Bibliotecas de Deep Learning

 1- Theano

No core Theano está um compilador de expressões matemáticas em Python. Sabe pegar suas estruturas e transformá-las em código muito eficiente utilizando NumPy, bibliotecas nativas eficientes como BLAS e código nativo (C ++) para serem executadas o mais rápido possível em CPUs ou GPUs.
Ele usa uma série de otimizações de código inteligente para extrair o máximo de desempenho possível do hardware.
Ele foi projetado especificamente para lidar com os tipos de computação necessários para grandes algoritmos de rede neural utilizados em Deep Learning. Foi uma das primeiras bibliotecas desse tipo e é considerado um padrão da indústria para pesquisa e desenvolvimento Deep Learning.

 2- TensorFlow

TensorFlow ™ é uma biblioteca de software de código aberto para computação numérica usando grafos de fluxo de dados. Os nós no grafos representam operações matemáticas, enquanto as bordas do grafos representam os arrays de dados multidimensionais (tensores) comunicados entre eles. A arquitetura flexível permite implantar computação para uma ou mais CPUs ou GPUs em uma área de trabalho, servidor ou dispositivo móvel com uma única API. O TensorFlow foi originalmente desenvolvido por pesquisadores e engenheiros que trabalham no Google Brain Team dentro da organização de pesquisa da Machine Learning da Google para fins de pesquisa em máquinas e pesquisa de Deep Learning.

Bibliotecas de Processamento Natural

 1- NLTK

O Natural Language Toolkit (NLTK), é um conjunto de bibliotecas e programas para processamento de linguagem natural simbólica e estatística (NLP). 
O NLTK inclui demonstrações gráficas e dados de amostra.
Destina-se a apoiar pesquisa e ensino em PNL ou áreas estreitamente relacionadas, incluindo linguística empírica, ciência cognitiva, inteligência artificial, recuperação de informações e machine learning. O NLTK tem sido utilizado com sucesso como ferramenta de ensino, como ferramenta de estudo individual e como plataforma para prototipagem e construção de sistemas de pesquisa.  NLTK suporta funcionalidades de classificação, tokenização, derivação, marcação, análise e linguagem semântica.

 2- Gensim

Gensim é uma biblioteca que implementa ferramentas para trabalhar com modelagem de espaço vetorial e modelagem de tópicos. È projetada para ser eficiente com textos amplos. A eficiência é conseguida pelo uso de estruturas de dados Numpy e operações Scipy de forma extensiva. Muito eficiente e de fácil uso .

Bibliotecas de Mineração de Dados 

 1- Scrapy

Conhecida por ser rápida e de alto nível pra crawling e web scraping, muito utilizada no rastreamento de sites e extração de dados estruturados de paginas web.
Pode ser utilizado para uma variada gama de funções. desde mineração de dados até monitoramento e testes automatizados.
De código aberto e escrito totalmente em Python, foi projetado no seu começo para raspagens, porém sofreu uma ótima evolução de atualmente possui a capacidade de coleta de dados de APIs e rastreamento de uso geral.

 2- Statsmodels

É um pacote que permite uma fantástica exploração de dados, estimação de modelos estatísticos e de vários testes.
Possui uma vasta lista de estatísticas descritivas, testes estatísticos e funções de traçado de resultados, totalmente disponíveis para diferentes tipos de dados.
Foi criado em cima das bibliotecas Numpy e Scipy. É totalmente integrado com Pandas para tratamento de dados, e utilizada também, Patsy para uma interface de fórmula R-like. 
Já suas funções gráficas são exclusivamente baseadas na biblioteca Matplotib

 Qual a melhor e qual usar?

Bom, aqui na InCube, sempre partimos do principio de que não existe ferramenta melhor, ou biblioteca melhor, ou até mesmo linguagem melhor. O que realmente existe é a ferramenta adequada para resolver nossos problemas.
Na listagem que acabamos de postar, estão somente algumas das bibliotecas de Python, supostamente as mais utilizadas, porém não podemos deixar de salientar que Pythom possui milhares de bibliotecas para inúmeras funções. Possivelmente você pode utilizar uma biblioteca que não esteja na nossa lista e fazer um excelente uso da mesma. 
Por isso convidamos você a comentar o nosso artigo, nos contando qual suas bibliotecas favoritas e o porquê da sua escolha.

Um abraço, e bons estudos!

 

Comentários

Postagens mais visitadas deste blog

Tutorial de Machine Learning com Python - Iniciantes - Parte 1

Regressão Múltipla com R

Tutorial de Machine Learning com Python - Iniciantes - Parte 2