Je viens de terminer un programme de master d'un an en science des données où on nous a enseigné R. J'ai trouvé que Python est plus populaire et a une plus grande communauté en IA.
Est-ce que cela vaut la peine pour quelqu'un dans ma position de passer en Python et si oui, pourquoi? Python possède-t-il des fonctionnalités révolutionnaires non disponibles dans R ou s'agit-il simplement d'une question de communauté?
python
comparison
r
C'est moi Mario
la source
la source
Réponses:
Je veux recadrer votre question.
Ne pensez pas à changer, pensez à ajouter.
En science des données, vous pourrez aller très loin avec python ou r mais vous irez plus loin avec les deux.
Python et r s'intègrent très bien, grâce au
reticulate
package. Je range souvent les données dans r parce que c'est plus facile pour moi, former un modèle en python pour bénéficier d'une vitesse supérieure et visualiser les résultats en r dans beauggplot
tout en un seul carnet!Si vous savez déjà qu'il n'y a aucun sens à l'abandonner, utilisez-le là où il est sensé et facile pour vous. Mais c'est 100% une bonne idée d'ajouter du python pour de nombreuses utilisations.
Une fois que vous vous sentirez à l'aise dans les deux, vous aurez un flux de travail qui vous convient le mieux dominé par votre langue préférée.
la source
reticulate
. rstudio a même un certain support pour inspecter python et est en train d'en ajouter plusreticulate
permet à R d'utiliser Python; de même,rpy2
permet à Python d'utiliser R. Il est courant pour les langages de programmation ayant des objectifs similaires d'avoir un moyen de se parler.Bien entendu, ce type de questions conduira également à des réponses principalement basées sur l'opinion. Néanmoins, il est possible d'énumérer les forces et les faiblesses de chaque langue, en ce qui concerne l'apprentissage automatique, les statistiques et les tâches d'analyse de données, que j'essaierai d'énumérer ci-dessous.
R
Forces
R a été conçu et développé pour les statisticiens et les analystes de données, il fournit donc, dès le départ (ils font partie du langage lui-même), des fonctionnalités et des installations pour les statisticiens, qui ne sont pas disponibles en Python, sauf si vous installer un package associé. Par exemple, la trame de données, que Python ne fournit pas, sauf si vous installez le fameux
pandas
package Python . Il existe d'autres exemples comme les matrices, les vecteurs, etc. En Python, il existe également des structures de données similaires, mais elles sont plus générales, donc pas spécifiquement destinées aux statisticiens.Il existe de nombreuses bibliothèques statistiques.
La faiblesse
Python
Forces
De nombreuses personnes et entreprises, dont Google et Facebook, investissent beaucoup dans Python. Par exemple, le langage de programmation principal de TensorFlow et PyTorch (deux frameworks d'apprentissage automatique largement utilisés) est Python. Il est donc très peu probable que Python ne continue pas d'être largement utilisé dans l'apprentissage automatique pendant au moins 5 à 10 ans de plus.
La communauté Python est probablement beaucoup plus grande que la communauté R. En fait, par exemple, si vous regardez l'index de Tiobe , Python est placé 3e, tandis que R est placé 20e.
Python est également largement utilisé en dehors des communautés de statistiques ou d'apprentissage automatique. Par exemple, il est utilisé pour le développement web (voir par exemple les frameworks Python Django ou Flask).
Il existe de nombreuses bibliothèques d'apprentissage automatique (par exemple TensorFlow et PyTorch).
La faiblesse
Il existe d'autres avantages et inconvénients possibles de ces langues. Par exemple, les deux langues sont dynamiques. Cependant, cette fonctionnalité peut être à la fois un avantage et un inconvénient (et elle n'est pas strictement liée à l'apprentissage automatique ou aux statistiques), donc je ne l'ai pas énumérée ci-dessus. J'ai évité de mentionner les fonctionnalités de langage d'opinion, telles que la lisibilité du code et la courbe d'apprentissage, pour des raisons évidentes (par exemple, toutes les personnes n'ont pas la même expérience de programmation).
Conclusion
Python vaut vraiment la peine d'apprendre si vous étudiez l'apprentissage automatique ou les statistiques. Cependant, cela ne signifie pas que vous n'utiliserez plus R. R pourrait encore être plus pratique pour certaines tâches.
la source
Je n'ai pas eu ce choix car j'ai été obligé de passer de R à Python:
Cela dépend de votre environnement : lorsque vous êtes intégré dans un département d' ingénierie , un groupe de travail technique ou quelque chose de similaire à Python est plus réalisable.
Lorsque vous êtes entouré de scientifiques et surtout de statisticiens , restez avec R.
PS: R propose également des keras et tensorflow bien qu'il soit implémenté sous le capot de python. Seuls des trucs très avancés vous feront avoir besoin de Python. Bien que je m'habitue de plus en plus à Python, le synthax dans R est plus facile . Et bien que chaque paquet ait le sien, il est en quelque sorte cohérent alors que Python ne l'est pas .. Et ggplot est si fort. Python a un clone (plotnine) mais il manque plusieurs fonctionnalités (importantes). En principe, vous pouvez faire presque autant que dans R mais surtout la visualisation et la manipulation des données sont beaucoup plus faciles dans R. Ainsi, la bibliothèque Python la plus célèbre, pandas, est un clone de R.
PSS: les statistiques avancées visent définitivement R. Python propose de nombreux outils et méthodes de tous les jours pour un data scientist, mais il n'atteindra jamais ces> 13 000 packages que R fournit. Par exemple, j'ai dû faire une régression inverse et python ne propose pas cela. Dans R, vous pouvez choisir entre plusieurs tests de confiance et s'il est linéaire ou non linéaire. Il en va de même pour les modèles mixtes: il est implémenté en python mais il est tellement basique que je ne peux pas réaliser à quel point cela peut être suffisant pour quelqu'un.
la source
Je dirais oui. Python est meilleur que R pour la plupart des tâches, mais R a sa niche et vous voudrez toujours l'utiliser dans de nombreuses circonstances.
De plus, l'apprentissage d'une deuxième langue améliorera vos compétences en programmation.
Ma propre perspective sur les points forts de R vs Python est que je préférerais R pour un petit programme à usage unique impliquant des tableaux ou des graphiques, ou un travail exploratoire dans la même veine. Je préférerais Python pour tout le reste.
Pour en savoir plus sur le dernier point: la programmation informatique bien faite est lego où vous faites vos propres briques (fonctions et modules).
Les programmes sont généralement modifiés et réutilisés au-delà de leur conception d'origine. Au fur et à mesure que vous les construisez, il est utile de penser aux pièces qui pourraient être réutilisées et de les construire d'une manière générale qui leur permettra de se connecter aux autres briques.
R vous encourage à faire fondre toutes les briques ensemble.
la source
Comme d'autres l'ont dit, ce n'est pas un "interrupteur". Mais vaut-il la peine d'ajouter Python à votre arsenal? Je dirais certainement. En science des données, Python est populaire et devient de plus en plus populaire, tandis que R recule quelque peu. Et dans les domaines de l'apprentissage automatique et des réseaux de neurones, je dirais que Python est le langage principal maintenant - je ne pense pas que R se rapproche vraiment ici en termes d'utilisation. La raison de tout cela est la généralité. Python est conçu comme un langage de programmation général et vous permet de scripter facilement toutes sortes de tâches. Si vous restez strictement dans un monde statistique soigneusement structuré, R est génial, mais avec l'IA, vous finissez souvent par devoir faire des choses nouvelles et diverses, et je ne pense pas que R puisse battre Python. Et pour cette raison,
la source
C'est totalement mon opinion personnelle.
J'ai lu dans mon bureau (sur un chantier de construction) qu '"il y a un bon outil pour chaque tâche".
Je m'attends à ce que je fasse face à une variété de tâches, en tant que programmeur. Je veux autant d'outils que possible "acheter ou investir", autant que possible. Un jour, un outil m'aidera à le résoudre, un autre jour un autre outil. R (pour les statistiques) et Python (pour en général) sont deux outils que je veux vraiment avec moi et je pense que cela vaut la peine d'investir pour moi.
En ce qui concerne le commutateur, j'utiliserai l'outil le plus efficace que je connaisse (où l'efficacité est mesurée par les exigences du client, l'investissement en temps et en coûts et la facilité de codage). Plus je connais d'outils, plus on est de fous! Bien sûr, il y a une limite pratique à cela.
Tout cela est mon opinion personnelle et pas nécessairement correcte.
la source
Il semble que vous ayez investi 1 an pour la science des données avec R et intégré dans l'environnement R, mais que vous souhaitiez explorer python pour la science des données.
Apprenez d'abord les bases du python comme le fonctionnement des listes et des tuples et le fonctionnement des classes et des objets.
Ensuite, mettez la main à la pâte avec certaines bibliothèques comme les pandas numpy matplotlib. Apprenez tensorflow ou keras, puis optez pour la science des données.
la source
Et oui, Python est plus populaire. Je travaille dans les deux mais, pour parler affaires, il est facile de trouver un emploi sur Python qu'en R.
Vous pouvez donc:
Ou
la source