Viele Einsteiger in den Bereichen Data Science und Machine Learning sehen sich mit einer gewichtigen und schwierigen Frage konfrontiert: Welche Programmiersprache sollte man lernen, um möglichst effektiv den Einstieg zu schaffen und schnell erste Ergebnisse zu produzieren? Man bekommt meistens eine von zwei Sprachen empfohlen: Python oder R.
Gerne unterstützen wir Sie bei Bedarf auch professionell im Rahmen unserer Dienstleistungen mit einer R Programmierung oder Python Programmierung.
In diesem Artikel wollen wir für Sie die Frage R vs Python individuell beantworten und gehen dabei unter anderem auf folgende Punkte ein:
- Wie einsteigerfreundlich sind die Sprachen jeweils?
- Welche Gemeinsamkeiten und Unterschiede weisen die Sprachen auf?
- Was sind die Spezialgebiete von Python oder R?
R vs Python: Wo gelingt der Einstieg schneller?
Wenn man zum ersten Mal in die Welt des Programmierens eintritt, ist das wie eine neue Sprache zu lernen. Viele unbekannte Vokabeln müssen unter bestimmten Regeln zu verständlichen Aussagen zusammengeführt werden. Es heißt nicht umsonst Programmiersprache. Welche der Sprachen R vs Python erleichtern den Einstieg am ehesten?
Antworten auf diese und weitere Fragen zu Python oder R erhalten Sie kompetent und ausführlich bei Novustat. Kontaktieren Sie uns unverbindlich über unser Anfrageformular. Wir beraten Sie gerne!
Für Python gibt es den sogenannten PEP 8 Style Guide (Python Enhancement Proposal). In ihm werden jedem Programmierer stilistische Gebräuche nahegelegt, die alle das Ziel haben den Code besser lesbar zu machen. Denn für Guido van Rossum, den Erfinder von Python, ist klar, dass Codes viel häufiger gelesen als geschrieben wird. Dies ist natürlich für Anfänger von Vorteil, denn in R gibt es einen solchen Style Guide nicht. Schlimmer noch: selbst innerhalb der Programmiersprache R existieren gegensätzliche Notationsregelungen. Dies führt häufig zu Verwirrung und in seltenen Fällen auch zu nicht funktionieren Programmen. Punkt für Python.
Wie funktioniert das erste Einrichten bei R vs Python?
Die erste Einrichtung der Programmierumgebungen ist in beiden Fällen ziemlich ähnlich: Zuerst muss der Compiler der Sprache installiert werden (also die Version von R oder Python, die man nutzen möchte) und anschließend installiert man sich im besten Fall eine IDE. IDE steht für Integrierte Entwicklungsumgebung. Sie erlaubt einem das Schreiben von Code sowie das Übersetzen bzw. Ausführen dessen im selben Programm. Besonders praktisch an IDEs ist, dass sie häufig zB. Autovervollständigung anbieten, die einem Programmierer die Arbeit erleichtert. Für R gibt es eigentlich nur RStudio, welches allerdings keine Wünsche offenlässt. Für Python gibt es eine Fülle an Auswahl: von Atom über Pycharm bis Spyder ist für jeden etwas dabei.
Nicht nur für Einsteiger, auch für erfahrene Programmierer gibt es etwas, dass das Arbeiten mit Python oder R erheblich vereinfacht: Notebooks. Bei R sind diese direkt in RStudio integriert, für Python muss man die Jupyter Notebooks noch zusätzlich installieren. Die Funktionalität ist generell ähnlich, jedoch funktionieren die Notebooks in R in vielerlei Hinsicht reibungsloser und bequemer. So werden die Notebooks automatisch in HTML Dateien umgewandelt, die sich anschließend an Kollegen verschicken lassen. Die Autovervollständigung in den Jupyter Notebooks funktioniert hingegen häufig nicht oder ist äußerst langsam. Der Punkt geht deutlich an R.
Man muss sich als Einsteiger natürlich nicht festlegen. Die Entscheidung R vs Python trifft man jetzt nicht fürs Leben. Aber wie gut lässt es sich später noch wechseln? Das lässt sich schwer vorhersagen, Erfahrungen zeigen jedoch, dass es Programmierern häufig leichter fällt nach Python R zu lernen als andersherum.
Wo liegen die Vorteile von Python und R?
Beide Sprachen wurden vor einem bestimmten Hintergrund entwickelt und sind auf diesen hin ausgelegt. R ist eine Sprache von Statistikern für Statistiker. Es bietet daher schon in der Grundversion jede Menge nützlicher Funktionen an, die dazu benutzt werden können, Daten einzulesen, Statistiken und Regressionen zu berechnen sowie diese zu plotten. Es ist also schon im hohen Maße spezialisiert. Im Fall von Python sollte die Grundversion so schmal und mächtig wie möglich bleiben. Daher müssen, um Datenverarbeitung effektiv zu betreiben, noch einige Pakete zusätzlich geladen werden. Während es für beide Sprachen über 10.000 zusätzliche Funktionspakete gibt, ist Python eher auf diese Module angewiesen. R ist auch schon „out of the box“ spezialisiert auf Statistik und in gewissem Maß auch auf Data Science. Dies bedeutet aber nicht, dass man nicht dennoch von vielen Paketen profitiert.
Im Folgenden sollen zwei Geschwindigkeitsvergleiche zu R vs Python durchgeführt werden. Im ersten Vergleich wird ein 3.5 GB großer Datensatz eingelesen und in einem Dataframe (einer Art Tabelle) gespeichert. Anschließend soll noch ein Überblick über den Inhalt der Tabelle ausgegeben werden sowie die Zeit, die die Programme gebraucht haben. (Die Codes zum Nachlesen finden sich Im Anhang des Artikels, der Datensatz kommt von Kaggle und ist ebenfalls verlinkt.) Python (genauer, das Paket Pandas) benötigt durchschnittlich 31 Sekunden, um die Anforderung zu erledigen. R benötigt mit einer Minute und 40 Sekunden wesentlich länger. Hier dominiert Python R.
Wie ist die Performence der Codes bei einfachem Machine Learning?
Der zweite Test ist eine Generierung von Zufallszahlen, für die eine lineare Verteilung generiert wird. Anschließend sollen noch eine lineare Regression durchgeführt und deren R^2 errechnet und gespeichert werden. Die Zeit wird verglichen, jeweils für sechs verschiedene Teilchenzahlen. In diesem Fall sind beide Sprachen gleichauf. Für 10 Millionen Teilchen haben beide Codes um die 60 Sekunden gebraucht. Das Ergebnis ist in der folgenden Abbildung ersichtlich.
Auf Basis dieser Versuche lassen sich schon zwei Erkenntnisse ziehen: Das Einlesen und Verarbeiten von großen Datenmengen (Stichwort Big Data) klappt mit Pythons genialer Pandas Bibliothek schneller als mit R. Andererseits unterscheiden sich die beiden Sprachen nicht wesentlich in der Geschwindigkeit, mit der grundlegende Rechenoperationen durchgeführt werden.
Wie sieht die Perspektive aus für R vs Python?
Als angehender Data Scientist ist es natürlich wichtig abzuwägen, welche der beiden Sprachen besser ausgerüstet ist, um Machine Learning Modelle zu entwickeln. Dabei geht es vor allem um drei Aspekte:
- Unterstützung durch Community,
- Entwicklung von Paketen
- Arbeitsmarktsituation.
Bei der Community hat Python klar die Nase vorne. In einer Umfrage mit knapp 24.000 Teilnehmern, 2018 von Kaggle.com durchgeführt, gaben rd. 25 % der Befragten an, Python regelmäßig zu verwenden. Dagegen verwenden nur ca. 8 % R regelmäßig. Noch deutlicher die Antwort auf die Frage, welche Sprache sie Data Science Anfängern empfehlen würden: Fast 60 % empfehlen Python, R aber nur 10 %. Jeder, der schon Programmiererfahrung gesammelt hat, weiß um die Wichtigkeit der Community in Bezug auf Hilfestellung. Kurzum: Je größer die Community, desto effektiver lässt sich die entsprechende Sprache anwenden.
Je größer die Community, desto mehr und bessere Pakete werden entwickelt. Python hat hier aktuell die bessere Auswahl. Es gibt dediziert wohl dokumentierte Pakete, die sich mit Machine Learning jeglicher Couleur auseinandersetzen. Bei R gibt es zwar auch solche Pakete, diese scheinen aber teilweise schlechter dokumentiert zu sein und sind bei weitem nicht so umfassend, abgesehen von Regressionsalgorithmen.
Das macht sich natürlich auch auf dem Arbeitsmarkt bemerkbar. Die Arbeitgeber suchen vor allem nach Entwicklern, die sich mit Python auskennen. Auch die Bezahlung für einen Pythonentwickler scheint durchschnittlich etwas höher als für R Versierte.
Unser Fazit
In diesem Beitrag haben die beiden Programmiersprachen R vs Python vorgestellt und die Frage diskutiert, welche zu lernen sich lohnt. Nach dem Vergleich lässt sich sagen, dass für einen angehenden Data Scientist Python die richtige Wahl ist. Es ist tatsächlich leichter zu erlernen und gleichzeitig mächtiger. Das Handling riesiger Datenmengen ist effektiver geregelt, was Zeitersparnisse in der späteren Anwendung bringt. Abgerundet wird dies durch die lebendige Community und die Fülle an hochwertigen und spezialisierten Paketen.
Auch wenn Python R überlegen scheint, so hat R dennoch seine berechtigten Anwendungsgebiete und ist aufgrund der Spezialisierung auf statistische Auswertungen bei vielen Wissenschaftlern beliebt. Wenn Sie noch bei der Frage R vs Python sind oder sich bereits für eine Sprache entschieden haben, aber über die ersten Schritte noch unklar sind, dann nehmen Sie doch Kontakt auf und fragen Sie unverbindlich Unterstützung durch unsere Experten an. Wir freuen uns darauf, Ihnen zu helfen!
Weiterführende Links
ZDNet. Python vs R and biggest salaries. Top data science job trends. https://www.zdnet.com/article/python-vs-r-and-biggest-salaries-top-data-science-job-trends/
2018 Kaggle Machine Learning and Data Science Survey. https://www.kaggle.com/paultimothymooney/2018-kaggle-machine-learning-data-science-survey
Verwendeter Datensatz auf Kaggle. https://www.kaggle.com/paultimothymooney/2018-kaggle-machine-learning-data-science-survey