Cinco ferramentas obrigatórias para cientistas de dados

Deve conhecer estas ferramentas Python para fins de ciência de dados.

Por Serdar Yegulalp

O rico ecossistema do Python – incluindo as ferramentas de ciência de dados – é um grande atrativo para os seus utilizadores. A única desvantagem de uma coleção tão abrangente e vasta de ferramentas é que se pode perder de vista uma ou outra pérola de ferramenta na massa.

5 Ferramentas Python para Ciência de Dados

Para evitar isso, compilámos cinco dos melhores – mais recentes ou menos conhecidos – projetos de ciência de dados para Python para si.

Normalmente, os dados residem algures numa base de dados (BD). No entanto, os cálculos são normalmente efetuados fora desta base de dados. Por conseguinte, podem ocorrer lentidões quando os dados são carregados para dentro e para fora da base de dados. A ferramenta ConnectorX quer evitar isso e minimizar a carga de trabalho ao mesmo tempo, carregando dados de bases de dados em muitas ferramentas comuns de manipulação de dados Python.

O núcleo do ConnectorX é uma biblioteca Rust. Isto torna possível, por exemplo, carregar dados de uma fonte de dados enquanto os particiona – por exemplo, no PostgreSQL. Para além disso, o ConnectorX também suporta dados de:

  • MySQL/MariaDB,
  • SQLite,
  • Amazon Redshift,
  • Microsoft e Azure SQL e
  • Oracle.

Os resultados podem então ser utilizados em Pandas, PyArrow DataFrame ou (através de PyArrow) também em Modin, Dask ou Polars.

DuckDB

Os cientistas de dados que trabalham com Python estarão provavelmente familiarizados com o SQLite. Como esse poderoso banco de dados relacional é executado como uma biblioteca em processo, em vez de um aplicativo separado, ele é particularmente enxuto e responsivo. O DuckDB é um pouco como o SQLite para OLAP. Tal como outros motores de bases de dados OLAP, utiliza um armazenamento de dados baseado em colunas e está otimizado para consultas analíticas a longo prazo. No entanto, oferece todas as características que se esperam de uma base de dados tradicional, como as transações ACID. Além disso, não é necessário configurar um conjunto de software separado. Em vez disso, basta um único comando de instalação pip no seu ambiente Python.

O DuckDB processa dados em formato CSV, JSON ou Parquet. Para aumentar a eficiência, as bases de dados resultantes também podem ser particionadas em vários ficheiros físicos com base em valores-chave (como o ano e o mês). As consultas funcionam como em qualquer outra base de dados relacional baseada em SQL – mas complementadas com funcionalidades adicionais, como a capacidade de obter amostras de dados ou criar funções de janela.

O DuckDB também oferece uma pequena, mas útil coleção de extensões, incluindo

  • Pesquisa de texto completo,
  • importação/exportação do Excel,
  • ligações diretas a SQLite e PostgreSQL,
  • exportação de ficheiros Parquet e
  • Suporte para vários formatos e tipos de geodados comuns.

Optimus

Preparar e limpar dados para um projeto centrado no DataFrame é uma das tarefas mais ingratas que os cientistas de dados podem enfrentar. É aqui que entra o conjunto de ferramentas tudo-em-um Optimus. Este permite que os dados sejam carregados, explorados, limpos e gravados num (n) conjunto de fontes.

Os motores de dados subjacentes podem ser

  • Pandas,
  • Dask,
  • CUDF (e Dask + CUDF),
  • Vaex ou
  • Spark podem ser utilizados.

Os dados podem ser carregados e armazenados em Arrow, Parquet, Excel, uma variedade de fontes de banco de dados comuns ou formatos de arquivo simples, como CSV e JSON. A API de manipulação de dados do Optimus é semelhante à do Pandas, mas adiciona assessores. rows() e .cols() para facilitar várias coisas. Por exemplo, ordenar um dataframe ou filtrar por valores de coluna. O Optimus também vem com processadores que lidam com tipos de dados do “mundo real”, como endereços de e-mail e URL.

É importante saber: O Optimus ainda está em desenvolvimento ativo, embora a última versão oficial seja de 2020, portanto, a ferramenta pode não estar tão atualizada quanto outros componentes em sua pilha.

Polars

Se trabalha regularmente com DataFrames e está frustrado com as limitações do Pandas, você deve dar uma olhada na biblioteca DataFrame Polars. Ela oferece uma sintaxe confortável semelhante à do Pandas. No entanto, ao contrário do Pandas, o Polars depende de uma biblioteca escrita em Rust, que faz uso otimizado do seu hardware desde o início. Não é necessária uma sintaxe especial para tirar partido de funções que melhoram o desempenho, como o processamento paralelo ou SIMD – isto é feito automaticamente. Mesmo operações simples como a leitura de um ficheiro CSV são muito mais rápidas desta forma.

O Polars oferece os modos de execução “eager” e “lazy”, para que as consultas possam ser executadas imediatamente ou apenas quando necessário. Uma API de streaming também está disponível para processar consultas de forma incremental. Além disso, os desenvolvedores do Rust também podem usar o pyo3 para criar suas próprias extensões do Polars.

Snakemake

Configurar fluxos de trabalho de ciência de dados não é tarefa fácil. Especialmente se você quiser que eles sejam consistentes e previsíveis. É por isso que o Snakemake foi desenvolvido: A ferramenta permite-lhe configurar automaticamente a análise de dados em Python – e de forma a que todos obtenham os mesmos resultados. Quanto mais partes móveis tiver o seu fluxo de trabalho de ciência de dados, maior é a probabilidade de beneficiar da automatização com o Snakemake.

Os fluxos de trabalho do Snakemake são similares aos fluxos de trabalho do GNU Make: Você define as coisas que quer fazer em termos de regras. Estas, por sua vez, determinam a entrada, saída e que comandos são executados para atingir o objetivo. As regras de fluxo de trabalho podem ser multithreaded (assumindo que há uma vantagem nisso) e os dados de configuração podem ser lidos a partir de arquivos JSON/YAML. Também pode definir funções nos seus fluxos de trabalho para transformar os dados utilizados nas regras e registar as ações realizadas em cada passo.

O Snakemake foi concebido para portabilidade: Os projetos correspondentes podem ser implementados em qualquer ambiente Kubernetes ou mesmo em ambientes de nuvem específicos, como o Google Cloud Life Sciences ou o AWS Tibanna.




Deixe um comentário

O seu email não será publicado