Welche Sprache eignet sich unter Matlab und Python für die allgemeine statistische Datenanalyse? Was sind die Vor- und Nachteile außer der Barrierefreiheit für jeden?
Welche Sprache eignet sich unter Matlab und Python für die allgemeine statistische Datenanalyse? Was sind die Vor- und Nachteile außer der Barrierefreiheit für jeden?
Antworten:
Als eingefleischter Matlab-Benutzer seit über 10 Jahren empfehle ich Ihnen, Python zu lernen. Wenn Sie eine Sprache ausreichend beherrschen und in einer Sprache arbeiten, die Sie gerade lernen, scheint es, als ob Sie nicht produktiv genug sind, und Sie werden auf Ihre Standardsprache zurückgreifen. Zumindest würde ich vorschlagen, dass Sie versuchen, eine Reihe von Sprachen gleichermaßen zu beherrschen (ich würde auch R vorschlagen).
Was ich an Matlab mag:
Was ich an Matlab nicht mag:
median
Funktion, die eine Art von Daten ausführt und dann den mittleren Wert annimmt . Dies ist seit den 70er Jahren der falsche Algorithmus.-nojvm
scheint hilfreich zu sein, sich
shuffle
Möglicherweise in einer Toolbox, ist nicht auf Lager Matlab. könnte kaum schlimmer sein als builtin, randperm
das den Sortierindex eines zufälligen Vektors zurückgibt. Auch dies ist wahrscheinlich der falsche Algorithmus (ich habe gerade über die Knuth-Fisher-Yates-Shuffle hier auf stats.SE erfahren) ..
randperm
ist, dass es von der Aussaat betroffen ist randn
, während eine mexikanische Version von Knuth-Fisher-Yates möglicherweise nicht 'intern' auf den Randn-Samen zugreifen kann und eine reine .m-Version von shuffle wahrscheinlich sei zu langsam.
Lassen Sie es uns in drei Bereiche aufteilen (von Kopf bis Fuß), in denen Programmierung und Statistik zusammentreffen: Datenverarbeitung, numerische Routinen (Optimierung usw.) und statistische Bibliotheken (Modellierung usw.).
Der größte Unterschied besteht darin, dass Python eine universelle Programmiersprache ist. Matlab ist großartig, solange Ihre Welt ungefähr isomorph zu einem fortran numerischen Array ist. Sobald Sie anfangen, sich mit Data Munging und verwandten Problemen zu befassen, überstrahlt Python Matlab. Ein Beispiel hierfür ist Greg Wilsons Buch: Data Crunching: Lösen alltäglicher Probleme mit Java, Python und mehr .
Auf der zweiten Seite glänzt Matlab wirklich mit numerischer Arbeit. Ein Großteil der Forschungsgemeinschaft nutzt es und wenn Sie nach einem Algorithmus suchen, der sich auf ein Papier mit komprimierter Abtastung bezieht, sind Sie weit davon entfernt Wahrscheinlichkeit, dass Sie eine Implementierung in Matlab finden höher. Andererseits ist Matlab eine Art PHP des wissenschaftlichen Rechnens - es strebt danach, für alles unter der Sonne eine Funktion zu haben. Die daraus resultierende Ästhetik und Architektur sind verrückt, wenn Sie ein Programmiersprachenfreak sind, aber in nützlicher Hinsicht erledigt es die Arbeit. Vieles davon ist mit dem Aufstieg von Numpy / Scipy weniger relevant geworden. Es ist genauso wahrscheinlich, dass Sie Optimierungs- und Maschinelle Lernbibliotheken für Python finden. Die Schnittstelle zu C ist in beiden Sprachen ungefähr so einfach.
In Bezug auf die Verfügbarkeit statistischer Bibliotheken für die Modellierung und ähnliches fehlt es beiden im Vergleich zu R etwas. (Obwohl ich vermute, dass beide den Bedarf von 80% der statistisch arbeitenden Personen decken werden.) Was die Python-Seite angeht, sehen Sie sich diese Frage an : Python als Statistik-Workbench . Ich weiß, dass es für Matlab eine Statistik-Toolbox gibt, aber ich lasse die Lücken von einem Fachmann ausfüllen (meine Erfahrung mit Matlab beschränkt sich auf statistikunabhängige numerische Arbeiten).
Ich bin außerdem seit über 10 Jahren begeisterter Matlab-Benutzer. Viele dieser Jahre hatte ich keinen Grund, über den für meinen Job erstellten Werkzeugkasten hinaus zu arbeiten. Obwohl viele Funktionen für eine Toolbox erstellt wurden, musste ich häufig Algorithmen für eine schnelle Analyse der Bearbeitungszeit erstellen. Da diese Algorithmen häufig Matrixmathematik verwenden, war Matlab ein idealer Kandidat für meinen Job. Zusätzlich zu meiner Matlab-Code-Toolbox arbeiteten andere in meiner Gruppe intensiv in Java, da eine klare Interoperabilität zwischen den Sprachen bestand. Ich war jahrelang sehr zufrieden mit Matlab, aber vor ungefähr 3 Jahren habe ich beschlossen, den langsamen Übergang weg von Matlab zu beginnen, und bin froh zu sagen, dass ich ihn seit ungefähr einem Jahr nicht mehr geöffnet habe. Hier sind die Gründe für meinen Umzug:
-nodesktop
Option zu verwenden ist die meiste Zeit gut, hat aber Probleme.Dies sind nur einige meiner vielen Probleme mit Matlab. Es ist ein herausragendes Merkmal: Es ist einfach, Code schnell zu schreiben (wenn nicht sogar hässlich). Ich habe es jedoch verlassen und meine Suche führte mich durch Clojure-> JavaScript-> Python <-> Julia; Ja, ich war überall.