R vs. Python: Welche Programmiersprache ist für die Datenwissenschaft besser?

Lohnt sich ein datenwissenschaftlicher Abschluss? Datenwissenschaftler sind gefragt, aber ein Master-Abschluss auf diesem Gebiet öffnet möglicherweise nicht so viele Türen, wie Sie denken.

Mehr über Big Data

  • Datenverwaltung: Ein Spickzettel
  • Integration der Roboter-Prozessautomatisierung in Big-Data-Projekte
  • Der Programmierer Hadley Wickham wirbt für die Vielfalt der R-Community
  • So wählen Sie die richtigen Datenanalysetools aus: 5 Schritte

Python vs. R ist eine häufige Debatte unter Datenwissenschaftlern, da beide Sprachen für die Datenarbeit nützlich sind und zu den am häufigsten genannten Fähigkeiten in Stellenausschreibungen für datenwissenschaftliche Positionen gehören. Jede Sprache bietet unterschiedliche Vor- und Nachteile für die datenwissenschaftliche Arbeit und sollte je nach Ihrer Arbeit ausgewählt werden.

Um Datenwissenschaftlern bei der Auswahl der richtigen Sprache zu helfen, schrieb Norm Matloff, Professor für Informatik an der University of California Davis, einen GitHub-Beitrag, um etwas Licht in die Debatte zu bringen.

Python frisst die Welt: Wie das Nebenprojekt eines Entwicklers zur heißesten Programmiersprache der Welt wurde (Titelstory PDF)

Matloff verglich R und Python in den folgenden 10 Domänen, um festzustellen, welche Programmiersprache die bessere Wahl war:

Eleganz

  • Gewinner: Python

Während dies subjektiv ist, reduziert Python die Verwendung von Klammern und Klammern beim Codieren erheblich, wodurch es schlanker wird, schrieb Matloff in dem Beitrag.

Lernkurve

  • Gewinner: R.

Während Datenwissenschaftler, die mit Python arbeiten, zunächst viel Material lernen müssen, darunter NumPy, Pandas und Matplotlib, sind Matrixtypen und grundlegende Grafiken bereits in Base R integriert, schrieb Matloff.

Mit R "kann der Anfänger innerhalb von Minuten einfache Datenanalysen durchführen", fügte er hinzu. "Die Konfiguration von Python-Bibliotheken kann selbst für Systembegeisterte schwierig sein, während die meisten R-Pakete sofort ausgeführt werden."

Verfügbare Bibliotheken

  • Gewinner: Krawatte

Der Python Package Index (PyPI) enthält über 183.000 Pakete, während das Comprehensive R Archive Network (CRAN) über 12.000 umfasst. PyPI ist jedoch eher datenwissenschaftlich, schrieb Matloff.

"Zum Beispiel brauchte ich einmal Code, um die nächsten Nachbarn eines bestimmten Datenpunkts schnell zu berechnen. (NICHT Code, der diesen zur Klassifizierung verwendet.)", Schrieb Matloff. "Ich konnte sofort nicht nur ein, sondern zwei Pakete finden, um dies zu tun. Im Gegensatz dazu habe ich gerade versucht, den Code für den nächsten Nachbarn für Python zu finden, und zumindest bei meiner flüchtigen Suche bin ich mit leeren Händen aufgetaucht; es gab nur eine Implementierung das beschrieb sich als einfach und unkompliziert, nichts schnelles. "

Wenn Sie die folgenden Begriffe in PyPI suchen, wird nichts angezeigt, fügte Matloff hinzu: log-lineares Modell; Poisson-Regression; instrumentelle Variablen; Geodaten; familienbezogene Fehlerrate.

Sechs gefragte Programmiersprachen: Erste Schritte (kostenloses PDF)

Maschinelles Lernen

  • Gewinner: Python (aber nicht viel)

Das massive Wachstum von Python in den letzten Jahren ist teilweise auf den Aufstieg des maschinellen Lernens und der künstlichen Intelligenz (KI) zurückzuführen. Während Python eine Reihe fein abgestimmter Bibliotheken für die Bilderkennung wie AlexNet anbietet, können auch R-Versionen leicht entwickelt werden, schrieb Matloff.

"Die Leistung der Python-Bibliotheken beruht auf der Einstellung bestimmter Bildglättungsoperationen, die leicht in Keras Wrapper von R implementiert werden können, und für diese Angelegenheit könnte eine reine R-Version von TensorFlow entwickelt werden", schrieb Matloff. "In der Zwischenzeit würde ich behaupten, dass die Paketverfügbarkeit von R für zufällige Wälder und die Erhöhung des Gradienten hervorragend sind."

Statistische Korrektheit

  • Gewinner: R (bei weitem)

Fachleute im Bereich maschinelles Lernen, die sich für Python einsetzen, haben manchmal ein schlechtes Verständnis für die damit verbundenen statistischen Probleme, schrieb Matloff. R hingegen wurde von Statistikern für Statistiker geschrieben, fügte er hinzu.

Parallele Berechnung

  • Gewinner: Krawatte

Die Basisversionen von R und Python unterstützen Multicore-Berechnungen nicht stark, schrieb Matloff. Das Multiprocessing-Paket von Python sei keine gute Lösung für die anderen Probleme, und das parallele Paket von R auch nicht, fügte er hinzu.

"Externe Bibliotheken, die die Clusterberechnung unterstützen, sind in beiden Sprachen in Ordnung", schrieb Matloff. "Derzeit hat Python bessere Schnittstellen zu GPUs."

C / C ++ - Schnittstelle

  • Gewinner: R (aber nicht viel)

Rs Rcpp ist ein leistungsstarkes Tool für die Anbindung von R an C / C ++, schrieb Matloff. Python verfügt zwar über Tools wie swig, um dasselbe zu tun, ist jedoch nicht so leistungsfähig, und das Pybind11-Paket wird noch entwickelt. Die neue ALTREP-Idee von R hat auch das Potenzial, die Leistung und Benutzerfreundlichkeit zu verbessern, schrieb Matloff. Die Cython- und PyPy-Varianten von Python können jedoch manchmal die Notwendigkeit einer expliziten C / C ++ - Schnittstelle beseitigen, fügte er hinzu.

Objektorientierung, Metaprogrammierung

  • Gewinner: R (aber nicht viel)

Obwohl Funktionen sowohl in R als auch in Python Objekte sind, nimmt R dies ernst, schrieb Matloff.

"Wenn ich in Python arbeite, ärgere ich mich darüber, dass ich keine Funktion auf dem Terminal drucken kann, was ich in R oft mache", schrieb er. Python hat nur ein OOP-Paradigma. In R haben Sie die Wahl zwischen mehreren, obwohl einige möglicherweise darüber diskutieren, dass dies eine gute Sache ist. Angesichts der magischen Metaprogrammierungsfunktionen von R (Code, der Code erzeugt) sollten Informatiker über R sabbern. "

Einheit der Sprache

  • Gewinner: Python (bei weitem)

Während Python von Version 2.7 auf 3.x übergeht, wird dies nicht zu großen Störungen führen. Aufgrund der Auswirkungen von RStudio ändert sich R jedoch in zwei verschiedene Dialekte: R und die Tidyverse, schrieb Matloff.

"Es wäre vielleicht akzeptabler, wenn die Tidyverse dem normalen R überlegen wären, aber meiner Meinung nach ist dies nicht der Fall", schrieb Matloff. "Es macht die Sache für Anfänger schwieriger."

Verknüpfte Datenstrukturen

  • Gewinner: Python (wahrscheinlich)

"Klassische Datenstrukturen der Informatik, z. B. Binärbäume, sind in Python einfach zu implementieren", schrieb Matloff. "Während dies in R mit seiner 'list'-Klasse möglich ist, würde ich vermuten, dass es langsam ist."

Laut einem Bericht der Cloud Academy aus dem Jahr 2018 besteht bei Stellenausschreibungen eine deutlich geringere Nachfrage nach Dateningenieuren mit R-Kenntnissen als nach Python-Experten. Fast 66% der Stellenausschreibungen von Dateningenieuren erwähnten Python, verglichen mit nur 18% der Stellenausschreibungen, in denen R erwähnt wurde.

Außerhalb von R und Python sind laut Cloud Academy weitere gefragte Fähigkeiten für Dateningenieure SQL, Spark, Hadoop, Java, Amazon Web Services (AWS), Scala und Kafka.

Weitere Informationen finden Sie unter So werden Sie Datenwissenschaftler: Ein Spickzettel zu TechRepublic.

Daten-, Analyse- und KI-Newsletter

Holen Sie sich Expertentipps zur Beherrschung der Grundlagen der Big-Data-Analyse und bleiben Sie über die neuesten Entwicklungen in der künstlichen Intelligenz auf dem Laufenden. Montags geliefert

Heute anmelden

Siehe auch

  • So werden Sie Datenwissenschaftler: Ein Spickzettel (TechRepublic)

  • 60 Möglichkeiten, um den größtmöglichen Nutzen aus Ihren Big-Data-Initiativen zu ziehen (kostenloses PDF) (TechRepublic)

  • Funktionsvergleich: Datenanalysesoftware und -dienste (Tech Pro Research)

  • Volumen, Geschwindigkeit und Vielfalt: Die drei Vs von Big Data (ZDNet) verstehen

  • Beste Cloud-Services für kleine Unternehmen (CNET)

  • Big Data: Mehr Muss-Berichterstattung (TechRepublic on Flipboard)

Bild: iStockphoto / ijeab

© Copyright 2021 | pepebotifarra.com