Mesmo sendo um blog de contabilidade financeira, é inegável que temas relacionados com ciência de dados sejam de nosso interesse. O debate entre Python e R é um daqueles assuntos emocionantes na área. Recentemente encontrei um post que fazia um comparativo entre os dois de forma mais isenta. Ao contrário do livro de Joel Gus, que afirma, nos agradecimentos, que "pessoas que preferem a R ao Python são moralmente reprováveis", Luca Zavarella é mais ponderado. Eu fiz um resumo da sua postagem (traduzido via Vivaldi e Deepl, com adaptações) a seguir:
Entre R e Python, qual idioma eu sugeriria para um especialista em análise de dados aspirante?
Nos últimos anos, vi a evolução do uso de ambos os idiomas no mundo do Data Analytics. Aqui estão meus pensamentos.
✔ A linguagem R é muito mais direta na análise interativa de dados e exploração de dados, especialmente para analistas ou para aqueles que vêm do mundo da inteligência de negócios, onde o SQL domina. Transformar os dados com R é uma reminiscência do processo mental realizado por quem usa SQL, com a vantagem de poder usar funções específicas que simplificam transformações complexas (como rotação de dados, por exemplo) ou que aplicam operações estatísticas úteis para análise .
A abordagem adotada pela Python para transformar dados está mais relacionada à experiência de um programador. Ter que recorrer necessariamente a expressões lambda, por exemplo, para tarefas bastante básicas de manipulação de dados, o que desorienta qualquer analista acostumado a uma abordagem mais baseada em conjuntos (que é a maneira correta de pensar quando se trabalha com dados!) e nos faz perceber que aqueles que desenvolveram os pacotes Python necessários para a manipulação de dados eram principalmente desenvolvedores e não analistas.
✔ R é a linguagem por excelência usada na academia (estatística, matemática, ciência de dados e assim por diante). Portanto, é muito provável que encontre novos algoritmos de ciência de dados implementados diretamente em R, mesmo antes de encontrá-los implementados em Python. Portanto, se você precisar usar esses novos algoritmos para um projeto, deverá necessariamente usar R .
✔ Tanto quanto visualização de dados No que diz respeito, R é a principal ferramenta que permite produzir belos gráficos prontos para publicações profissionais. Certamente, gráficos desse tipo também são obtidos no Python, mas não tão facilmente quanto você pode fazer em R, especialmente com a infinidade de pacotes desenvolvidos para adicionar necessidades gráficas específicas.
✔ Quanto a painel profissional, as plataformas mais usadas evoluíram e admitem o uso dos dois idiomas. Por exemplo, Plotly Dash e Shiny permitem o desenvolvimento de aplicativos de dados em nível empresarial em Python e R. Para aqueles conectados ao mundo da plataforma de dados da Microsoft, o Power BI também permite que você use os dois idiomas.
✔ Python é uma linguagem de programação de uso geral muito clara, muito versátil devido ao ecossistema de pacotes desenvolvidos pela comunidade e predominantemente usada por estudantes e desenvolvedores de programação. Por esse motivo, é mais fácil encontrar um programador que conheça Python que também queira entrar em análise de dados. É por isso que existem tantos pacotes dedicados à transformação de dados e análise de dados agora disponíveis no Python. Como resultado, o mercado de tecnologias relacionadas à Análise de Dados se voltou para a adoção do Python.
✔ No lado da engenharia de dados, o vencedor claro é certamente Python. Primeiro, o Python é um dos poucos idiomas suportados por todas as APIs que permitem interagir com os serviços de dados de todos os principais provedores de nuvem (Azure, AWS, Google).
✔ Devido ao fato de toda a parte de engenharia de dados ser tratada em Python, geralmente é conveniente desenvolver modelos de aprendizado de máquina sempre usando Python (você também pode desenvolvê-los em R).
✔ Python é a escolha necessária quando você precisa enfrentar projetos que exigem soluções de Aprendizado profundo (visão computacional, reconhecimento automático de linguagem falada, processamento de linguagem natural, reconhecimento de áudio usando as estruturas TensorFlow, Keras e PyTorch). Implicitamente, estamos afirmando que o mundo inteiro da Inteligência Artificial é fortemente baseado em Python.
Dito isto, tento responder à pergunta feita no título do artigo.
Conclusões
Atualmente, o Python permite que você lide com tópicos puros de Análise de Dados e Ciência de Dados, bem como Engenharia de Dados e Inteligência Artificial, graças ao vasto ecossistema de pacotes desenvolvidos pela comunidade. É verdade que problemas específicos relacionados mais a Estatísticas e Visualização de Dados são resolvidos mais facilmente usando a linguagem R, mas ainda são casos específicos que compõem uma porcentagem muito pequena dos casos para os quais o Python é mais necessário.
Portanto, embora eu seja mais fluente em R do que em Python,
Eu recomendo que aqueles que desejam abordar os tópicos do Data Analytics se dediquem principalmente ao aprendizado do Python e como usar melhor os pacotes mais importantes para transformação de dados e aprendizado de máquina (pandas, scikit-learn, etc.).).
A versatilidade do Python permite que você alterne de uma função para outra (por exemplo,., de Data Scientist a Data Engineer, ou vice-versa), caso seus interesses mudem durante sua carreira.
Isso não tira o fato de que, depois de se aprofundar no Python, estudar para ter um entendimento básico de R e seus pacotes do ecossistema Tidyverse é definitivamente uma vantagem que será muito útil em muitos casos. Você não deve subestimar que a comunidade R é grande e que muitas soluções foram desenvolvidas em R. Adicionar o conhecimento desse idioma ao seu arsenal é, portanto, uma escolha vencedora. Também porque, ao contrário do que alguns podem pensar, Python e R não são mais dois mundos compartimentados.
Faço um adendo: na nossa comunidade científica (de contabilidade e áreas afins) há um predomínio de pessoas que conhecem R, mas não Python. Se estudar Python pode ser um diferencial, saber R não te deixa sozinho.