Lohnt sich ein Umstieg von R auf Python? [geschlossen]


31

Ich habe gerade ein einjähriges Data Science-Masterstudium abgeschlossen, in dem uns R beigebracht wurde. Ich fand, dass Python populärer ist und eine größere Community in AI hat.

Lohnt es sich für jemanden in meiner Position, zu Python zu wechseln und wenn ja, warum? Gibt es in Python bahnbrechende Funktionen, die in R nicht verfügbar sind, oder ist dies nur eine Frage der Community?


2
War es ein Kurs an einer öffentlichen Hochschule, einer privaten Universität oder im betrieblichen Bildungssystem?
Manuel Rodriguez

12
Sie können sich nicht auf Python umstellen . Sie sprechen nicht über ein Projekt, das Sie bereits in R geschrieben haben, und möchten es auf Python portieren. Sie fragen lediglich nach dem Erlernen von Python (nicht zu vergessen, dass Sie R verwenden). Lohnt es sich, Python zu lernen? Heutzutage ist es fast unmöglich , Python nicht zu lernen, wenn Sie mit irgendetwas im Zusammenhang mit der Datenverarbeitung mit einem Computer arbeiten ...
lvella

1
Ich bin mir nicht sicher, warum dies nicht als meinungsbasiert abgeschlossen wurde, aber ich bin froh.
Evorlor

1
@Evorlor Siehe meine Antwort, die in der Tat besagt, dass diese Frage auch in erster Linie zu meinungsbasierten Antworten führen wird. Darüber hinaus habe ich dafür gestimmt, diese Frage als primär meinungsbasiert zu schließen, obwohl ich auch eine Antwort gegeben habe. Auf dieser Website gibt es viele Fragen dieser Art. Ich bin mir nicht mehr sicher, ob dies eine gute Sache ist oder nicht, aber die aktuellen Antworten auf diese Frage waren für viele Menschen nützlich.
Nr.

2
Wie ist das nicht geschlossen ?? Dies ist eine kanonische meinungsbasierte Frage.
Spacetyper

Antworten:


60

Ich möchte Ihre Frage neu formulieren.

Denken Sie nicht an das Wechseln, sondern an das Hinzufügen.

In der Datenwissenschaft sind Sie in der Lage, entweder mit Python oder mit R sehr weit zu gehen, aber Sie sind mit beiden am weitesten gekommen.

Python und r lassen sich dank des reticulatePakets sehr gut integrieren . Ich räume oft Daten in r auf, weil es für mich einfacher ist, ein Modell in Python zu trainieren, um von der überragenden Geschwindigkeit zu profitieren und die Ergebnisse in r in einem schönen ggplotNotebook zu visualisieren !

Wenn Sie bereits wissen, dass es keinen Sinn macht, es aufzugeben, verwenden Sie es, wo es für Sie sinnvoll und einfach ist. Es ist jedoch zu 100% eine gute Idee, Python für viele Zwecke hinzuzufügen.

Sobald Sie sich in beiden Sprachen wohl fühlen, steht Ihnen ein Workflow zur Verfügung, der am besten zu Ihrer bevorzugten Sprache passt.


Ich stimme Ihrer Ansicht voll und ganz zu. Fügen Sie es einfach hinzu und versuchen Sie, Ihre R-Fähigkeiten nicht aufzugeben.
Jens Kohl

3
upvote für reticulate. rstudio hat sogar Unterstützung für die Inspektion von Python und ist dabei, noch mehr hinzuzufügen
Blues

Das einzige Problem bei der Verwendung von beiden ist, dass Sie alle anderen Downstream-Anwender auch von R und Python abhängig machen. Ich bin damit einverstanden, Ihre Fähigkeiten zu erweitern - aber ich würde die Dinge beim Schreiben von Skripten trotzdem rein halten!
PascalVKooten

reticulateerlaubt R, Python zu benutzen; In ähnlicher Weise rpy2kann Python R verwenden. Es ist üblich, dass Programmiersprachen mit ähnlichen Zwecken miteinander kommunizieren können.
JG

Genau. Handeln Sie nicht mit Ihrem Werkzeug, sondern fügen Sie eins Ihrem Gürtel hinzu. Jetzt haben Sie mehr Werkzeuge, mit denen Sie mehr Probleme besser lösen können.
Mast

28

Diese Art von Fragen wird natürlich auch zu vorwiegend meinungsbasierten Antworten führen. Dennoch ist es möglich, die Stärken und Schwächen jeder Sprache in Bezug auf maschinelles Lernen, Statistik und Datenanalyse aufzuzählen, die ich im Folgenden auflisten möchte.

R

Stärken

  • R wurde entwickelt und für Statistiker und Datenanalysten entwickelt, so dass es bietet, out-of-the-Box (das heißt, sie sind Teil der Sprache selbst sind), Funktionen und Einrichtungen für die Statistiker, die in Python nicht verfügbar sind, es sei denn , Sie Installieren Sie ein zugehöriges Paket. Zum Beispiel der Datenrahmen, den Python nicht bereitstellt, es sei denn, Sie installieren das berühmte Python- pandasPaket. Es gibt andere Beispiele wie Matrizen, Vektoren usw. In Python gibt es auch ähnliche Datenstrukturen, die jedoch allgemeiner sind und sich nicht speziell an Statistiker richten.

  • Es gibt viele statistische Bibliotheken.

Die Schwäche

Python

Stärken

  • Viele Menschen und Unternehmen, einschließlich Google und Facebook, investieren viel in Python. Die Hauptprogrammiersprache von TensorFlow und PyTorch (zwei weit verbreitete Frameworks für maschinelles Lernen) ist beispielsweise Python. Es ist daher sehr unwahrscheinlich, dass Python noch mindestens fünf bis zehn Jahre im maschinellen Lernen weit verbreitet sein wird.

  • Die Python-Community ist wahrscheinlich viel größer als die R-Community. Wenn Sie sich beispielsweise den Tiobe-Index ansehen , steht Python an dritter Stelle, während R an zwanzigster Stelle steht.

  • Python wird auch außerhalb der Statistik oder der Community für maschinelles Lernen häufig verwendet. Beispielsweise wird es für die Webentwicklung verwendet (siehe z. B. die Python-Frameworks Django oder Flask).

  • Es gibt viele maschinelle Lernbibliotheken (z. B. TensorFlow und PyTorch).

Die Schwäche

  • Die von R bereitgestellten Funktionen für Statistik und Datenanalyse sind nicht sofort verfügbar, es sei denn, Sie installieren ein geeignetes Paket. Dies kann abhängig von Ihrer philosophischen Sichtweise eine Schwäche oder eine Stärke sein.

Es gibt andere mögliche Vor- und Nachteile dieser Sprachen. Beispielsweise sind beide Sprachen dynamisch. Diese Funktion kann jedoch sowohl ein Vorteil als auch ein Nachteil sein (und sie hängt nicht ausschließlich mit maschinellem Lernen oder Statistiken zusammen), sodass ich sie oben nicht aufgeführt habe. Ich habe aus offensichtlichen Gründen darauf verzichtet, eigensinnige Sprachfunktionen wie die Lesbarkeit von Code und die Lernkurve zu erwähnen (z. B. haben nicht alle Menschen die gleiche Programmiererfahrung).

Fazit

Python ist definitiv lohnenswert, wenn Sie maschinelles Lernen oder Statistik studieren. Dies bedeutet jedoch nicht, dass Sie R nicht mehr verwenden werden. R könnte für bestimmte Aufgaben noch handlicher sein.


3
Es scheint so, als ob das Feature-Set "out of the box" irrelevant ist. Die relevante Sache ist die Verfügbarkeit von Paketen, die tun, was Sie wollen, nein?
Dean MacGregor

1
@DeanMacGregor Wenn Sie keinen Zugang zum Internet haben, ist diese Funktion relevant! Wenn eine Programmiersprache bereits eine sofort einsatzbereite Funktion bietet, müssen Sie keine Zeit verlieren, um danach zu suchen.
Nr.

Considering Python is heavily infested on being 'batteries included', its weakness is not one you encounter often. Especially since there are Python installations in use which do have statistical packages included. For data science in particular, Anaconda is quite popular and solves your immediate concern.
Mast

6

I didn't have this choice because I was forced to move from R to Python:

It depends on your environment: When you are embedded in an engineer department, working technical group or something similar than Python is more feasible.

Wenn Sie von Wissenschaftlern und vor allem Statistikern umgeben sind , bleiben Sie bei R.

PS: R bietet Keras und Tensorflow, obwohl es unter der Haube von Python implementiert ist. Nur sehr fortgeschrittene Sachen werden Sie Python brauchen. Obwohl ich mich immer mehr an Python gewöhne, ist der Synthax in R einfacher . Und obwohl jedes Paket sein eigenes hat, ist es irgendwie konsistent, während Python es nicht ist. Und ggplot ist so stark. Python hat einen Klon (Plotnine), aber es fehlen einige (wichtige) Funktionen. Im Prinzip können Sie fast so viel wie in R tun, aber vor allem Visualisierung und Daten-Wrangling sind in R viel einfacher. Daher ist die berühmteste Python-Bibliothek, pandas, ein Klon von R.

PSS: Advanced statistics aims definitely at R. Python offers a lot of everyday tools and methods for a data scientist but it will never reach those >13,000 packages R provides. For example, I had to do an inverse regression and python doesn't offer this. In R you can choose between several confidence tests and whether it is linear or nonlinear. The same goes to mixed models: It is implemented in python but it is so basic there I can't realize how this can be sufficient for someone.


4

I would say yes. Python is better than R for most tasks, but R has its niche and you would still want to use it in many circumstances.

Additionally, learning a second language will improve your programming skills.

My own perspective on the strengths of R vs Python is that I would prefer R for a small, single-purpose program involving tables or charts, or exploratory work in the same vein. I would prefer Python for everything else.

  • R is really good for table mashing. If most of what a particular program is going to do is smoosh some tables into different shapes, then R is the thing to pick. Python has tools for this, but R is designed for it and does it better.
  • It's worth switching to R whenever you need to make a chart, because ggplot2 is a masterpiece of API usability and matplotlib is a crawling horror.
  • Python is well designed for general purpose programming. It has a very well designed set of standard data structures, standard libraries, and control flow statements.
  • R is poorly suited for general purpose programming. It doesn't handle tree-structured or graph-structured data well. It has some rules (like being able to look into and modify your parent scope) which are immediately convenient, but when used lead to programs that do are hard to grow, modify, or compose.
  • R also has some straightforwardly bad things in it. These are mostly just historical leftovers like the three different object systems.

To elaborate more on the last point: computer programming done well is lego where you make your own bricks (functions and modules).

Programs are usually modified and repurposed past their original design. As you build them it is useful to think about which parts might be reused, and to build those part in a general way that will let them plug in to the other bricks.

R encourages you to melt all the bricks together.


1

As others have said, it's not a "switch". But is it worth adding Python to your arsenal? I would say certainly. In data science, Python is popular and becoming ever more popular, while R is receding somewhat. And in the fields of machine learning and neural networks, I'd say that Python is the main language now -- I don't think R really comes close here in terms of usage. The reason for all of this is generality. Python is intended as a general programming language, and allows you to easily script all kinds of tasks. If you're staying strictly within a neatly structured statistical world, R is great, but with AI you often end up having to do novel, miscellaneous things, and I don't think R can beat Python at that. And because of this, I think Python and its packages will be receiving more support and development when it comes to the more cutting-edge tech.


0

This is totally my personal opinion.

I read in my office (at a construction site) that "There is a right tool for every task."

I expect me to face a variety of tasks, as a programmer. I want as many tools as I can "buy or invest in", as possible. One day one tool will help me solve it, some other day some other tool. R (for statistics) and Python (for in general) are two tools I definitely want with me and I think it is worth investment for me.

As far as switch is concerned, I will use the most efficient tool I know (where efficiency is measured by client's requirement, time and cost investment and ease of coding) . The more tools I know, the merrier! Of course there is a practical limit to it.

All this is my personal opinion and not necessarily correct.


0

It sounds like you have invested 1 year for data science with R, and embedded into R environment, but want to explore python for data science.

First learn the basics of the python like how lists and tuple works and how classes and objects work.

Then get your hands dirty with some libraries like numpy matplotlib pandas. Learn tensorflow or keras and then go for data science.


-1

Person who chases two rabbits catches neither

And yes, Python is more popular. I work in both but, business speaking, it's easy to find a job on Python than in R.

So, you could:

  • Pick Python because it is more popular. However, you must start from scratch.

Or

  • Stay with R, after all, you have one year worth of training with R. But it is not popular.

The suggestion here that learning an additional programming language will somehow leave you worse off is nonsense. Learning additional programming languages, especially those that are unfamiliar, will always improve your skills as a programmer in any language.
Will Da Silva
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.