Właśnie skończyłem roczny program magisterski Data Science, w którym nas nauczono R. Odkryłem, że Python jest bardziej popularny i ma większą społeczność w AI.
Czy warto, aby ktoś na moim stanowisku przeszedł na Python, a jeśli tak, dlaczego? Czy python ma jakieś funkcje zmieniające grę, niedostępne w R, czy to tylko kwestia społeczności?
python
comparison
r
ItsMeMario
źródło
źródło
Odpowiedzi:
Chcę zmienić definicję twojego pytania.
Nie myśl o zamianie, pomyśl o dodaniu.
W nauce o danych będziesz w stanie posunąć się bardzo daleko z pythoniem lub r, ale pójdziesz najdalej z obydwoma.
Python ir integruje się bardzo dobrze dzięki
reticulate
pakietowi. Często porządkuję dane wr, ponieważ jest mi łatwiej, trenuję model w Pythonie, aby korzystać z doskonałej prędkości i wizualizować wyniki wi w pięknym,ggplot
wszystko w jednym notatniku!Jeśli już wiesz, że porzucenie go nie ma sensu, użyj go tam, gdzie jest to rozsądne i łatwe. Ale w 100% dobrym pomysłem jest dodanie Pythona do wielu zastosowań.
Kiedy poczujesz się komfortowo w obu, będziesz mieć przepływ pracy, który najlepiej pasuje do twojego ulubionego języka.
źródło
reticulate
. rstudio ma nawet wsparcie dla inspekcji Pythona i jest w trakcie dodawania kolejnychreticulate
pozwala R używać Pythona; podobnie,rpy2
pozwala Pythonowi na użycie R. To jest powszechne w językach programowania o podobnych celach, aby mieć ze sobą jakiś sposób na rozmowę.Oczywiście tego rodzaju pytania doprowadzą również do odpowiedzi opartych głównie na opiniach. Niemniej jednak możliwe jest wyliczenie mocnych i słabych stron każdego języka w odniesieniu do zadań uczenia maszynowego, statystyk i analiz danych, które spróbuję wymienić poniżej.
R
Silne strony
R został zaprojektowany i opracowany dla statystyków i analityków danych, więc zapewnia, od razu po wyjęciu z pudełka (to znaczy, że są częścią samego języka), funkcje i udogodnienia dla statystyk, które nie są dostępne w Pythonie, chyba że użytkownik zainstaluj powiązany pakiet. Na przykład ramka danych, której nie zapewnia Python, chyba że zainstalujesz słynny
pandas
pakiet Pythona . Istnieją inne przykłady, takie jak macierze, wektory itp. W Pythonie istnieją również podobne struktury danych, ale są one bardziej ogólne, więc nie są specjalnie ukierunkowane dla statystyk.Istnieje wiele bibliotek statystycznych.
Słabość
Pyton
Silne strony
Wiele osób i firm, w tym Google i Facebook, dużo inwestuje w Python. Na przykład głównym językiem programowania TensorFlow i PyTorch (dwóch powszechnie używanych platform uczenia maszynowego) jest Python. Jest więc bardzo mało prawdopodobne, aby Python nie był nadal szeroko stosowany w uczeniu maszynowym przez co najmniej 5-10 lat.
Społeczność Python jest prawdopodobnie znacznie większa niż społeczność R. W rzeczywistości, na przykład, jeśli spojrzysz na indeks Tiobe , Python jest na 3 miejscu, a R na 20.
Python jest również szeroko stosowany poza społecznościami zajmującymi się statystykami i uczeniem maszynowym. Na przykład służy do tworzenia stron internetowych (patrz np. Frameworki Python Django lub Flask).
Istnieje wiele bibliotek uczenia maszynowego (np. TensorFlow i PyTorch).
Słabość
Istnieją inne możliwe zalety i wady tych języków. Na przykład oba języki są dynamiczne. Jednak ta funkcja może być zarówno zaletą, jak i wadą (i nie jest ściśle związana z uczeniem maszynowym lub statystykami), więc nie wymieniłem jej powyżej. Z oczywistych powodów unikałem wspominania o opiniowanych cechach języka, takich jak czytelność kodu i krzywa uczenia się (np. Nie wszyscy ludzie mają takie samo doświadczenie w programowaniu).
Wniosek
Python jest zdecydowanie wart nauki, jeśli studiujesz uczenie maszynowe lub statystyki. Nie oznacza to jednak, że nie będziesz już używać R. R może nadal być wygodniejszy w przypadku niektórych zadań.
źródło
Nie miałem tego wyboru, ponieważ byłem zmuszony przejść z R do Python:
Zależy to od twojego środowiska : gdy jesteś osadzony w dziale inżynierii , pracująca grupa techniczna lub coś podobnego niż Python jest bardziej wykonalne.
Kiedy jesteś otoczony naukowcami, a zwłaszcza statystykami , pozostań przy R.
PS: R oferuje również keras i tensorflow, chociaż jest zaimplementowany pod maską Pythona. Tylko bardzo zaawansowane rzeczy sprawią, że będziesz potrzebować Pythona. Chociaż coraz bardziej przyzwyczajam się do Pythona, składnia w R jest łatwiejsza . I chociaż każdy pakiet ma swój własny, jest w jakiś sposób spójny, podczas gdy Python nie jest… A ggplot jest tak silny. Python ma klon (plotnine), ale brakuje mu kilku (ważnych) funkcji. Zasadniczo możesz zrobić prawie tyle samo, co w R, ale zwłaszcza wizualizacja i przekłamywanie danych w R. jest znacznie łatwiejsze. Zatem najsłynniejsza biblioteka Pythona, pandy, jest klonem R.
PSS: Zaawansowana statystyka zdecydowanie dąży do R. Python oferuje wiele codziennych narzędzi i metod dla naukowca danych, ale nigdy nie osiągnie tych> 13 000 pakietów R. Na przykład musiałem wykonać regresję odwrotną, a python tego nie oferuje. W R możesz wybrać między kilkoma testami ufności i czy jest to liniowy czy nieliniowy. To samo dotyczy modeli mieszanych: jest zaimplementowany w Pythonie, ale jest tam tak podstawowy, że nie mogę zrozumieć, w jaki sposób może to być komuś wystarczające.
źródło
Powiedziałbym tak. Python jest lepszy niż R dla większości zadań, ale R ma swoją niszę i nadal będziesz chciał go używać w wielu okolicznościach.
Ponadto nauka drugiego języka poprawi Twoje umiejętności programowania.
Moje własne spojrzenie na mocne strony R vs Python jest takie, że wolałbym R dla małego, jednozadaniowego programu obejmującego tabele lub wykresy lub prace eksploracyjne w tym samym stylu. Wolę Pythona do wszystkiego innego.
Aby rozwinąć więcej na temat ostatniego punktu: dobrze wykonane programowanie komputerowe to klocki lego, w których wykonujesz własne cegły (funkcje i moduły).
Programy są zwykle modyfikowane i zmieniane w stosunku do ich pierwotnego wyglądu. Podczas ich budowania warto zastanowić się, które części mogą zostać ponownie wykorzystane, i zbudować tę część w ogólny sposób, który pozwoli im podłączyć się do innych cegieł.
R zachęca do stopienia wszystkich cegieł.
źródło
Jak powiedzieli inni, nie jest to „przełącznik”. Ale czy warto dodać Python do swojego arsenału? Powiedziałbym z pewnością. W nauce o danych Python jest popularny i staje się coraz bardziej popularny, podczas gdy R nieco ustępuje. A w dziedzinie uczenia maszynowego i sieci neuronowych powiedziałbym, że Python jest teraz głównym językiem - nie sądzę, żeby R naprawdę był tutaj bardzo podobny pod względem użytkowania. Powodem tego jest ogólność. Python jest przeznaczony jako ogólny język programowania i pozwala na łatwe pisanie wszelkiego rodzaju zadań. Jeśli trzymasz się ściśle w starannie ustrukturyzowanym świecie statystycznym, R jest świetny, ale przy AI często musisz robić nowe, różne rzeczy, i nie sądzę, że R może pokonać Pythona w tym. I dlatego,
źródło
To jest całkowicie moja osobista opinia.
W swoim biurze (na placu budowy) przeczytałem, że „Do każdego zadania jest odpowiednie narzędzie”.
Oczekuję, że jako programista będę musiał stawić czoła różnorodnym zadaniom. Chcę jak najwięcej narzędzi, które mogę „kupić lub zainwestować”. Pewnego dnia jedno narzędzie pomoże mi go rozwiązać, innym razem inne narzędzie. R (dla statystyk) i Python (ogólnie) to dwa narzędzia, które zdecydowanie chcę ze sobą i myślę, że warto dla mnie zainwestować.
Jeśli chodzi o zamianę, użyję najbardziej wydajnego narzędzia, jakie znam (gdzie wydajność jest mierzona wymaganiami klienta, inwestycją czasu i kosztów oraz łatwością kodowania). Im więcej narzędzi wiem, tym lepiej! Oczywiście istnieje praktyczny limit.
Wszystko to jest moja osobista opinia i niekoniecznie poprawna.
źródło
Wygląda na to, że zainwestowałeś 1 rok na naukę danych w R i osadziłeś się w środowisku R, ale chcesz poznać python dla nauki danych.
Najpierw naucz się podstaw Pythona, takich jak listy i krotki oraz jak działają klasy i obiekty.
Następnie zabrudz swoje ręce bibliotekami, takimi jak numpy matplotlib pandy. Dowiedz się tensorflow lub keras, a następnie przejdź do nauki danych.
źródło
I tak, Python jest bardziej popularny. Pracuję w obu, ale mówiąc biznesowo, łatwo jest znaleźć pracę w Pythonie niż w R.
Więc możesz:
Lub
źródło