Vale a pena mudar de R para Python? [fechadas]

31

Acabei de terminar um programa de mestrado de Ciência de Dados de 1 ano em que fomos ensinados a R. Descobri que o Python é mais popular e tem uma comunidade maior em IA.

Vale a pena alguém na minha posição mudar para Python e, se sim, por quê? O python tem algum recurso de mudança de jogo não disponível no R ou é apenas uma questão de comunidade?

Sou eu Mario
fonte
2
Foi um curso em uma faculdade pública, uma universidade particular ou no sistema de ensino corporativo?
Manuel Rodriguez
12
Você não pode mudar para Python. Você não está falando de um projeto que já escreveu em R e deseja portá-lo para Python, está simplesmente perguntando sobre aprender Python (sem esquecer o R). Vale a pena aprender Python? Hoje em dia é quase impossível não aprender Python se você trabalha com algo relacionado ao manuseio de dados com um computador ...
lvella
1
Não sei por que isso não foi fechado com base em opiniões, mas estou feliz.
Evorlor
1
@Evorlor Veja minha resposta, que de fato afirma que esta pergunta também levará a respostas baseadas principalmente em opiniões. Além disso, votei para encerrar esta pergunta como principalmente baseada em opiniões, mesmo que eu também desse uma resposta. Neste site, há muitas perguntas desse tipo. Não tenho mais certeza se isso é bom ou não, mas as respostas atuais a essa pergunta foram úteis para muitas pessoas.
nbro
2
Como isso não está fechado? Esta é uma pergunta baseada em opinião canônica.
spacetyper

Respostas:

60

Quero reformular sua pergunta.

Não pense em mudar, pense em adicionar.

Na ciência de dados, você poderá ir muito longe com python ou r, mas será mais longe com ambos.

Python e r se integram muito bem, graças ao reticulatepacote. Costumo arrumar dados em r porque é mais fácil para mim, treinar um modelo em python para se beneficiar de uma velocidade superior e visualizar os resultados em r em belo ggplottudo em um único notebook!

Se você já sabe que não há sentido em abandoná-lo, use-o onde for sensível e fácil para você. Mas é 100% recomendável adicionar python para muitos usos.

Depois de se sentir confortável em ambos, você terá um fluxo de trabalho que melhor se adequa a você, dominado pelo seu idioma favorito.

Fnguyen
fonte
Concordo plenamente com o seu ponto de vista. Basta adicioná-lo e tentar não abandonar o seu conjunto de habilidades R.
Jens Kohl
3
voto positivo para reticulate. rstudio ainda tem algum suporte para inspecionar python e está em processo de adicionar mais
azuis
O único problema com o uso de ambos é que você faz com que todos os outros downstream dependam de ter R e Python também. Embora eu concorde em "adicionar" ao seu conjunto de habilidades - ainda manteria as coisas puras ao escrever scripts!
PascalVKooten
reticulatepermite que o R use Python; Da mesma forma, rpy2permite que o Python use R. É comum que linguagens de programação com propósitos semelhantes tenham alguma maneira de conversar entre si.
JG
Exatamente. Não negocie sua ferramenta, mas adicione uma ao seu cinto. Agora você tem mais ferramentas, permitindo resolver mais problemas de uma maneira melhor.
Mastro
28

Obviamente, esse tipo de perguntas também levará a respostas baseadas principalmente em opiniões. No entanto, é possível enumerar os pontos fortes e fracos de cada idioma, com relação às tarefas de aprendizado de máquina, estatística e análise de dados, que tentarei listar abaixo.

R

Forças

  • O R foi projetado e desenvolvido para estatísticos e analistas de dados, para fornecer, pronto para uso (ou seja, eles fazem parte do próprio idioma), recursos e facilidades para estatísticos, que não estão disponíveis no Python, a menos que você instale um pacote relacionado. Por exemplo, o quadro de dados, que o Python não fornece, a menos que você instale o famoso pandaspacote do Python . Existem outros exemplos, como matrizes, vetores, etc. No Python, também existem estruturas de dados semelhantes, mas elas são mais gerais, portanto, não são direcionadas especificamente para estatísticos.

  • Existem muitas bibliotecas estatísticas.

Fraqueza

Python

Forças

  • Muitas pessoas e empresas, incluindo Google e Facebook, investem muito em Python. Por exemplo, a principal linguagem de programação do TensorFlow e PyTorch (duas estruturas de aprendizado de máquina amplamente usadas) é o Python. Portanto, é muito improvável que o Python não continue sendo amplamente usado no aprendizado de máquina por pelo menos 5 a 10 anos.

  • A comunidade Python provavelmente é muito maior que a comunidade R. De fato, por exemplo, se você olhar para o índice de Tiobe , o Python é o terceiro, enquanto R é o 20º.

  • O Python também é amplamente usado fora das estatísticas ou nas comunidades de aprendizado de máquina. Por exemplo, é usado para desenvolvimento web (veja, por exemplo, os frameworks Python Django ou Flask).

  • Existem muitas bibliotecas de aprendizado de máquina (por exemplo, TensorFlow e PyTorch).

Fraqueza

  • Ele não fornece, de imediato, as funcionalidades estatísticas e de análise de dados fornecidas pelo R, a menos que você instale um pacote apropriado. Isso pode ser uma fraqueza ou uma força, dependendo do seu ponto de vista filosófico.

Existem outras vantagens e desvantagens possíveis desses idiomas. Por exemplo, os dois idiomas são dinâmicos. No entanto, esse recurso pode ser uma vantagem e uma desvantagem (e não está estritamente relacionado ao aprendizado de máquina ou estatística), portanto não o listei acima. Evitei mencionar recursos de linguagem opinativa, como legibilidade de código e curva de aprendizado, por razões óbvias (por exemplo, nem todas as pessoas têm a mesma experiência de programação).

Conclusão

Definitivamente vale a pena aprender Python se você estiver estudando aprendizado de máquina ou estatística. No entanto, isso não significa que você não usará mais o R. R ainda pode ser mais útil para determinadas tarefas.

nbro
fonte
3
Parece que o conjunto de recursos "pronto para uso" é irrelevante. O relevante é a disponibilidade de pacotes que fazem o que você quer, não?
Dean MacGregor
1
@ DeanMacGregor Se você não tem acesso à Internet, esse recurso é relevante! Além disso, se uma linguagem de programação já fornece um recurso pronto para uso, você não precisa perder tempo procurando por ele.
nbro
Considerando que o Python está muito infestado de ser 'incluído na bateria', sua fraqueza não é aquela que você encontra com frequência. Especialmente porque há instalações do Python em uso que fazem têm pacotes estatísticos incluídos. Para a ciência de dados em particular, o Anaconda é bastante popular e resolve sua preocupação imediata.
Mast
6

Não tive essa opção porque fui forçado a mudar de R para Python:

Depende do seu ambiente : quando você está incorporado a um departamento de engenharia , o grupo técnico de trabalho ou algo semelhante ao Python é mais viável.

Quando você estiver cercado por cientistas e especialmente estatísticos , fique com R.

O PS: R oferece keras e tensorflow, embora ele seja implementado sob o capô do python. Somente coisas muito avançadas farão você precisar de Python. Embora eu esteja me acostumando cada vez mais ao Python, a sintaxe no R é mais fácil . E embora cada pacote tenha o seu, é de alguma forma consistente enquanto o Python não é .. E o ggplot é tão forte. O Python possui um clone (plotnine), mas não possui vários recursos (importantes). Em princípio, você pode fazer quase tanto quanto em R, mas especialmente a visualização e a manipulação de dados são muito mais fáceis em R. Assim, a mais famosa biblioteca Python, os pandas, é um clone de R.

PSS: Estatísticas avançadas visam definitivamente a R. Python oferece muitas ferramentas e métodos cotidianos para um cientista de dados, mas nunca alcançará os> 13.000 pacotes que a R fornece. Por exemplo, eu tive que fazer uma regressão inversa e o python não oferece isso. Em R, você pode escolher entre vários testes de confiança e se é linear ou não linear. O mesmo vale para modelos mistos: ele é implementado em python, mas é tão básico que não consigo perceber como isso pode ser suficiente para alguém.

Ben
fonte
4

Eu diria que sim. Python é melhor que R para a maioria das tarefas, mas R tem seu nicho e você ainda deseja usá-lo em várias circunstâncias.

Além disso, aprender um segundo idioma melhorará suas habilidades de programação.

Minha própria perspectiva sobre os pontos fortes de R vs Python é que eu preferiria R para um pequeno programa de propósito único envolvendo tabelas ou gráficos, ou trabalho exploratório da mesma maneira. Eu preferiria o Python para todo o resto.

  • R é realmente bom para esmagar tabelas. Se a maior parte do que um programa em particular vai fazer é agrupar algumas tabelas em formas diferentes, então R é a escolha. O Python possui ferramentas para isso, mas o R foi projetado para isso e funciona melhor.
  • Vale a pena mudar para R sempre que você precisar fazer um gráfico, porque o ggplot2 é uma obra-prima da usabilidade da API e o matplotlib é um horror rastejante.
  • O Python é bem projetado para programação de uso geral. Ele possui um conjunto muito bem projetado de estruturas de dados padrão, bibliotecas padrão e instruções de fluxo de controle.
  • R é pouco adequado para programação de uso geral. Ele não lida bem com dados estruturados em árvore ou estruturados em gráficos. Ele tem algumas regras (como poder examinar e modificar o escopo pai) que são imediatamente convenientes, mas quando usadas levam a programas difíceis de crescer, modificar ou compor.
  • R também tem algumas coisas diretamente ruins. Essas são principalmente apenas sobras históricas, como os três sistemas de objetos diferentes.

Para elaborar mais sobre o último ponto: a programação de computadores bem feita é lego, onde você cria seus próprios tijolos (funções e módulos).

Os programas são geralmente modificados e adaptados após o design original. À medida que você as constrói, é útil pensar em quais partes podem ser reutilizadas e construí-las de uma maneira geral que permita que elas se conectem aos outros tijolos.

R incentiva você a derreter todos os tijolos juntos.

GlennS
fonte
1

Como outros já disseram, não é um "interruptor". Mas vale a pena adicionar Python ao seu arsenal? Eu diria certamente. Na ciência de dados, o Python é popular e está se tornando cada vez mais popular, enquanto o R está recuando um pouco. E nos campos de aprendizado de máquina e redes neurais, eu diria que o Python é a linguagem principal agora - não acho que o R realmente chegue perto aqui em termos de uso. A razão para tudo isso é generalidade. O Python é uma linguagem de programação geral e permite que você faça scripts facilmente de todos os tipos de tarefas. Se você estiver estritamente dentro de um mundo estatístico bem estruturado, R é ótimo, mas com a IA você acaba tendo que fazer coisas novas e diversas, e não acho que R consiga vencer o Python. E por isso,

Denziloe
fonte
0

Esta é totalmente minha opinião pessoal.

Eu li no meu escritório (em uma obra) que "Existe uma ferramenta certa para todas as tarefas".

Espero que eu enfrente uma variedade de tarefas, como programador. Quero o máximo de ferramentas possível "comprar ou investir". Um dia, uma ferramenta me ajudará a resolvê-la, outro dia, outra ferramenta. R (para estatísticas) e Python (para em geral) são duas ferramentas que eu definitivamente quero comigo e acho que vale a pena investir para mim.

No que diz respeito à mudança, usarei a ferramenta mais eficiente que conheço (onde a eficiência é medida pela exigência do cliente, tempo e investimento de custo e facilidade de codificação). Quanto mais ferramentas eu sei, melhor! Claro que há um limite prático para isso.

Tudo isso é minha opinião pessoal e não necessariamente correto.

Amit
fonte
0

Parece que você investiu 1 ano em ciência de dados com R e incorporado ao ambiente R, mas deseja explorar o python para ciência de dados.

Primeiro, aprenda o básico do python, como funciona a lista e a tupla e como as classes e os objetos funcionam.

Em seguida, sujar as mãos com algumas bibliotecas como pandas numéricos matplotlib. Aprenda tensorflow ou keras e depois vá para a ciência de dados.

Nitish Kumar
fonte
-1

A pessoa que persegue dois coelhos não pega

E sim, Python é mais popular. Eu trabalho em ambos, mas, falando em negócios, é fácil encontrar um emprego no Python do que no R.

Então, você poderia:

  • Escolha Python porque é mais popular. No entanto, você deve começar do zero.

Ou

  • Fique com R, afinal, você tem um ano de treinamento com R. Mas não é popular.
Magallanes
fonte
A sugestão aqui de que aprender uma linguagem de programação adicional de alguma forma o deixará pior é uma bobagem. Aprender linguagens de programação adicionais, especialmente aquelas que não são familiares, sempre aprimora suas habilidades como programador em qualquer idioma.
Will Da Silva