R czy Python? Jaki język wybrać

07 Jan 2018 / admin

Data science zdominowały R i Python. Który wybrać?


Początkowo nie ma to wielkiego znaczenia (musimy poznać metody, a te w zasadzie nie zależą od implementacji). Problem ten pojawia się gdy chcemy nabrać praktyki, wykonać jakieś ćwiczenia na danych. Poniżej fajne strony w tej kwestii, odniosę się do nich bliżej wkrótce.
R czy Python [datacamp.com]
R czy Python [webhose.io]

W krótkich żołnierskich słowach -- główna różnica pomiędzy R a Py to punkt wyjścia twórców.

  • R jest bardziej pakietem statystycznym (najbardziej przypomina Matlab, ale jego przeznaczeniem jest wykonywanie obliczeń - jak w Mathematica, Statistica, Stata, SPSS czy Gretl). Dlatego R domyślnie wyświetla wyniki na ekranie, podstawowym rodzajem danych jest wektor, domyślnie posiada też pakiet DataFrame (dla niewtajemniczonych: daleki odpowienidk arkusza w Excelu).
  • Python jest pomyślany jako język programowania, wobec czego niekoniecznie musi być używany do obliczeń (można w nim napisać np. grę komputerową). Oczywiście w ramach pakietu R możemy używać skryptów i funkcji, napisanych w języku R.
  • Dzięki dodatkowym bibliotekom, różnice pomiędzy R a Python zmniejszają się. Np. używając biblioteki pandas możemy obrabiać dane podobnie jak w R. Istnieje sporo bliżniaczych (R / Py) bibliotek, np. Keras, NLTK, Selenium, itp.
  • Pomiędzy tymi pakietami jest wiele podobieństw. Oba są darmowe (w przeciwieństwie do Matlab), oba mają bogaty zasób bibliotek do data-science. Skrypty w R są interpretowane, podobnie jak programy w Py.

Jeśli bliższe Ci jest programowanie niż algebra czy statystyka - zapewnie będziesz zadowolony z Python (ale z drugiej strony w data-science oba komponenty są nieuniknione: programowanie oraz praca na wzorach i danych).
Jeśli używałeś Matlaba - łatwiej zaczniesz z R (zob. słownik R-Matlab).
Jeśli naturalnym sposobem zapisu jest wektor/macierz i większość operacji będzie wykonywana "wektorowo" - polubisz R.
Jeśli lubisz oglądać dane i na bieżąco wyniki na ekranie - raczej R.
Jeśli Twój program będzie działał na serwerze albo na przenośmym środowisku na USB - znacznie łatwiej to osiągniesz używając Python.

Moim naturalnym punktem wyjścia jest oczywiście praca na danych. Dzięki doświadczeniu w Matlab, kiedy potrzebowałem przesiąść się na R - zajęło mi to kilka dni metodą prób i błędów. Rozpoczęscie obliczeń w Python trwało trochę dłużej, mimo że znałem podstawy programowania. Mimo wszystko -- sam wolę Py i nowe projekty staram się robić w tym języku. Nie oznacza to, że tego co robię nie można zrobić w R! Dla obecnych zastosowań nie wielkich różnic, a osobście podoba mi się zwięzłość Py. Wydaje mi się, że środowisko użytkowników Py zapewnia trochę więcej wsparcia np. na stackoverflow.com.

Oczywiście w pracy zespołowej, nie zawsze mamy wybór. Przykładowo -- trafiam do zespołu, który ma rozpoczęty projekt albo mój szef ma silną preferencję któregoś z podejść. Poza tym polityka bezpieczeństwa firmy może nie pozwalać na instalację R czy Python. Na początek zacznij od tego podejścia, które wolisz, a prędzej czy później dojdziesz do tego, że warto poznać choćby podstawy innych podejść (być może nie tylko z grona R/Py).



1