Czy warto przejść z R na Python? [Zamknięte]


31

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?


2
Czy był to kurs na publicznej uczelni, prywatnym uniwersytecie czy w systemie edukacji korporacyjnej?
Manuel Rodriguez

12
Nie możesz przejść na Python. Nie mówisz o projekcie, który już napisałeś w R i chcesz przenieść go do Pythona, po prostu pytasz o naukę Pythona (nie zapominając o R). Czy warto uczyć się języka Python? W dzisiejszych czasach jest prawie niemożliwe, aby nie uczyć się języka Python, jeśli pracujesz z czymkolwiek związanym z przetwarzaniem danych za pomocą komputera ...
lvella,

1
Nie jestem pewien, dlaczego nie zostało to zamknięte w oparciu o opinie, ale cieszę się.
Evorlor,

1
@Evorlor Zobacz moją odpowiedź, która rzeczywiście stwierdza, że ​​to pytanie doprowadzi również do odpowiedzi opartych głównie na opiniach. Ponadto głosowałem za zamknięciem tego pytania jako opartego głównie na opiniach, mimo że również udzieliłem odpowiedzi. Na tej stronie internetowej jest wiele pytań tego typu. Nie jestem już pewien, czy to dobrze, czy nie, ale aktualne odpowiedzi na to pytanie były przydatne wielu ludziom.
nbro

2
Jak to nie jest zamknięte? To kanoniczne pytanie oparte na opinii.
spacetyper

Odpowiedzi:


60

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 reticulatepakietowi. 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, ggplotwszystko 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.


W pełni zgadzam się z twoim punktem widzenia. Wystarczy go dodać i starać się nie porzucać zestawu umiejętności R.
Jens Kohl,

3
głosować za reticulate. rstudio ma nawet wsparcie dla inspekcji Pythona i jest w trakcie dodawania kolejnych
blues

Jedynym problemem związanym z używaniem obu jest to, że uzależniasz wszystkich pozostałych użytkowników od posiadania R i Pythona. Chociaż zgadzam się na „dodawanie” do twojego zestawu umiejętności - nadal piszę skrypty!
PascalVKooten

reticulatepozwala R używać Pythona; podobnie, rpy2pozwala Pythonowi na użycie R. To jest powszechne w językach programowania o podobnych celach, aby mieć ze sobą jakiś sposób na rozmowę.
JG

Dokładnie. Nie wymieniaj się narzędziem, ale dodaj je do paska. Teraz masz więcej narzędzi, które pozwalają lepiej rozwiązywać więcej problemów.
Maszt

28

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 pandaspakiet 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ść

  • Nie zapewnia on gotowych funkcji statystycznych i analizy danych, które zapewnia R, chyba że zainstalujesz odpowiedni pakiet. Może to być słabość lub siła, w zależności od twojego filozoficznego punktu widzenia.

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ń.


3
Wygląda na to, że zestaw funkcji „po wyjęciu z pudełka” nie ma znaczenia. Istotną rzeczą jest dostępność pakietów, które robią, co chcesz, nie?
Dean MacGregor

1
@DeanMacGregor Jeśli nie masz dostępu do Internetu, ta funkcja jest istotna! Co więcej, jeśli język programowania oferuje już gotową funkcję, nie musisz tracić czasu na jej wyszukiwanie.
nbro

Biorąc pod uwagę, że Python jest mocno zainfekowany faktem, że jest „dołączony do baterii”, jego słabość nie jest częsta. Zwłaszcza, że istnieją instalacji Pythona w użyciu których robić nie pakiety statystyczne zawarte. W szczególności w dziedzinie analizy danych Anaconda jest dość popularna i rozwiązuje Twoje bezpośrednie obawy.
Maszt

6

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.


4

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.

  • R jest naprawdę dobry do zacierania tabeli. Jeśli większość tego, co zrobi konkretny program, polega na nałożeniu kilku tabel na różne kształty, to R jest wyborem. Python ma do tego narzędzia, ale R jest do tego przeznaczony i robi to lepiej.
  • Warto przełączyć się na R za każdym razem, gdy trzeba sporządzić wykres, ponieważ ggplot2 to arcydzieło użyteczności API, a matplotlib to pełzający horror.
  • Python jest dobrze zaprojektowany do programowania ogólnego przeznaczenia. Ma bardzo dobrze zaprojektowany zestaw standardowych struktur danych, standardowych bibliotek i instrukcji sterowania przepływem.
  • R jest słabo przystosowany do programowania ogólnego zastosowania. Nie radzi sobie dobrze z danymi o strukturze drzewiastej lub grafowej. Ma kilka zasad (takich jak możliwość przeglądania i modyfikowania zakresu nadrzędnego), które są natychmiast wygodne, ale gdy są używane, prowadzą do programów, które trudno rozbudować, zmodyfikować lub skomponować.
  • R ma też w sobie coś złego. Są to w większości tylko resztki historyczne, takie jak trzy różne systemy obiektów.

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ł.


1

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,


0

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.


0

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.


-1

Osoba, która goni dwa króliki, nie łapie żadnej

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:

  • Wybierz Python, ponieważ jest bardziej popularny. Musisz jednak zacząć od zera.

Lub

  • Pozostań z R, przecież masz roczny trening z R. Ale to nie jest popularne.

Sugestia, że ​​nauka dodatkowego języka programowania w jakiś sposób sprawi, że będziesz gorzej, jest nonsensem. Uczenie się dodatkowych języków programowania, zwłaszcza tych, które są nieznane, zawsze poprawi Twoje umiejętności programistyczne w dowolnym języku.
Czy Da Silva
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.