Który język spośród Matlab i Python nadaje się do ogólnej analizy danych statystycznych? Jakie są zalety i wady, inne niż dostępność, dla każdego?
Który język spośród Matlab i Python nadaje się do ogólnej analizy danych statystycznych? Jakie są zalety i wady, inne niż dostępność, dla każdego?
Odpowiedzi:
Jako zagorzały użytkownik Matlaba od ponad 10 lat zalecam naukę języka Python. Gdy osiągniesz wystarczającą umiejętność posługiwania się językiem, kiedy będziesz pracować w języku, którego się uczysz, będzie wyglądać na to, że nie jesteś wystarczająco produktywny i wrócisz do używania domyślnego najlepszego języka. Przynajmniej sugerowałbym, abyś spróbował stać się równie biegły w wielu językach (sugerowałbym również R).
Co lubię w Matlabie:
Czego nie lubię w Matlabie:
median
funkcja Matlaba , która wykonuje rodzaj danych, a następnie przyjmuje średnią wartość . Jest to zły algorytm od lat 70-tych.-nojvm
wydaje się pomóc ...
shuffle
może znajdować się w przyborniku, nie jest w magazynie Matlab. nie może być gorszy niż wbudowany, randperm
który zwraca indeks sortowania losowego wektora. Znów jest to prawdopodobnie zły algorytm (właśnie dowiedziałem się o tasowaniu Knutha-Fishera-Yatesa tutaj na stats.SE) ..
randperm
jest to, że ma na to wpływ randn
rozsiewanie, podczas gdy mieszana wersja Knuth-Fisher-Yates może nie może uzyskać dostępu do nasiona randn „wewnętrznie”, a czysta wersja .m tasowania prawdopodobnie być zbyt wolnym.
Podzielmy go na trzy obszary (z góry mojej głowy), w których programowanie spotyka się ze statystykami: crunch danych, procedury numeryczne (optymalizacja i tym podobne) oraz biblioteki statystyczne (modelowanie itp.).
Po pierwsze, największą różnicą jest to, że Python jest językiem programowania ogólnego przeznaczenia. Matlab jest świetny, o ile twój świat jest z grubsza izomorficzny w porównaniu z tablicą liczbową fortran. Kiedy zaczniesz zajmować się mungingiem danych i pokrewnymi problemami, Python przyćmiewa Matlaba. Na przykład zobacz książkę Grega Wilsona: Przetwarzanie danych: rozwiązywanie codziennych problemów za pomocą Java, Python i innych .
Po drugie, Matlab naprawdę błyszczy pracą numeryczną. Wiele społeczności badawczej korzysta z niego i jeśli szukasz, powiedzmy, jakiegoś algorytmu związanego z tekstem w wykrywaniu skompresowanym, znacznie bardziej prawdopodobne jest znalezienie implementacji w Matlabie. Z drugiej strony Matlab jest rodzajem PHP naukowego obliczeń - stara się mieć funkcję dla wszystkiego pod słońcem. Wynikająca z tego estetyka i architektura są denerwujące, jeśli jesteś maniakiem języka programowania, ale w utylitarnym sensie robi to. Wiele z tego stało się mniej istotne wraz z rozwojem Numpy / Scipy, równie dobrze możesz znaleźć biblioteki optymalizacji i uczenia maszynowego dostępne dla Pythona. Interfejs z C jest równie łatwy w obu językach.
Jeśli chodzi o dostępność bibliotek statystycznych do modelowania i tym podobne, obu brakuje nieco w porównaniu z czymś takim jak R. (Podejrzewam, że oba zaspokoją potrzeby 80% osób wykonujących prace statystyczne). Po stronie Pythona zobacz to pytanie : Python jako stół roboczy statystyk . Po stronie Matlaba wiem, że istnieje zestaw narzędzi statystycznych, ale pozwolę komuś bardziej kompetentnemu wypełnić puste pola (moje doświadczenie z Matlabem ogranicza się do pracy numerycznej niezwiązanej ze statystykami).
Jestem także zapalonym użytkownikiem Matlaba od ponad 10 lat. Przez wiele lat nie miałem powodu, aby pracować poza zestawem narzędzi, który stworzyłem dla mojej pracy. Chociaż dla zestawu narzędzi utworzono wiele funkcji, często potrzebowałem algorytmów do szybkiej analizy zmian. Ponieważ algorytmy te często wykorzystują matematykę matematyczną, Matlab był idealnym kandydatem do mojej pracy. Oprócz mojego zestawu narzędzi Matlab, inni w mojej grupie pracowali intensywnie w Javie, ponieważ między językami istniała wyraźna interoperacyjność. Przez lata byłem całkowicie zadowolony z Matlaba, ale około 3 lata temu postanowiłem rozpocząć powolne przejście z Matlaba i cieszę się, że nie otworzyłem go od około roku. Oto powód mojego ruchu:
-nodesktop
opcji jest dobre przez większość czasu, ale ma swoje problemy.To tylko niektóre z moich wielu problemów z Matlabem. To jeden olśniewający atrybut: łatwo, naprawdę łatwo napisać kod szybko (jeśli nie brzydki). Zostawiłem to, a moja misja poprowadziła mnie przez Clojure-> JavaScript-> Python <-> Julia; tak, byłem wszędzie.