Ne vale la pena un passaggio da R a Python? [chiuso]


31

Ho appena finito un programma di master di Data Science di 1 anno in cui ci è stato insegnato R. Ho scoperto che Python è più popolare e ha una comunità più ampia in AI.

Vale la pena per qualcuno nella mia posizione passare a Python e se sì, perché? Python ha delle funzionalità che cambiano il gioco non sono disponibili in R o è solo una questione di comunità?


2
Era un corso in un'università pubblica, un'università privata o nel sistema di istruzione aziendale?
Manuel Rodriguez,

12
Non puoi passare a Python. Non stai parlando di un progetto che hai già scritto in R e vuoi portarlo su Python, stai semplicemente chiedendo di imparare Python (senza dimenticare R). Vale la pena imparare Python? Al giorno d'oggi è quasi impossibile non imparare Python se si lavora con qualsiasi cosa relativa alla gestione dei dati con un computer ...
lvella

1
Non sono sicuro del perché questo non sia stato chiuso come opinione, ma sono contento.
Evorlor

1
@Evorlor Vedi la mia risposta, che in effetti afferma che questa domanda porterà anche a risposte principalmente basate sull'opinione. Inoltre, ho votato per chiudere questa domanda principalmente come opinione, anche se ho anche dato una risposta. In questo sito web ci sono molte domande di questo tipo. Non sono più sicuro se questa è una cosa positiva o meno, ma le risposte attuali a questa domanda sono state utili a molte persone.
nbro,

2
Come mai questo non è chiuso ?? Questa è una domanda canonica basata sull'opinione.
spacetyper

Risposte:


60

Voglio riformulare la tua domanda.

Non pensare al passaggio, pensa all'aggiunta.

Nella scienza dei dati sarai in grado di andare molto lontano con Python o R, ma andrai più lontano con entrambi.

Python e r si integrano molto bene, grazie al reticulatepacchetto. Ordino spesso i dati in r perché è più facile per me, alleno un modello in Python per beneficiare di una velocità superiore e visualizzare i risultati in r in un bellissimo ggplotnotebook tutto in uno!

Se sai già che non ha senso abbandonarlo, usalo dove è ragionevole e facile per te. Ma è una buona idea al 100% aggiungere Python per molti usi.

Una volta che ti senti a tuo agio in entrambi, avrai un flusso di lavoro che ti si adatta meglio dominato dalla tua lingua preferita.


Sono pienamente d'accordo sul tuo punto di vista. Basta aggiungerlo e cercare di non abbandonare il tuo set di abilità R.
Jens Kohl,

3
voto per reticulate. rstudio ha anche un po 'di supporto per l'ispezione di Python ed è in procinto di aggiungere altro
blues

L'unico problema con l'utilizzo di entrambi è che tutti gli altri downstream dipendono dall'avere anche R e Python. Mentre sono d'accordo su "aggiungere" al tuo skillset - manterrei comunque le cose pure quando scrivo script!
PascalVKooten,

reticulateconsente a R di usare Python; allo stesso modo, rpy2consente a Python di usare R. È comune per linguaggi di programmazione con scopi simili avere un modo di parlare tra loro.
JG

Esattamente. Non scambiare il tuo strumento, ma aggiungine uno alla cintura. Ora hai più strumenti che ti consentono di risolvere più problemi in un modo migliore.
Albero

28

Naturalmente, questo tipo di domande porterà anche a risposte principalmente basate sull'opinione pubblica. Tuttavia, è possibile elencare i punti di forza e di debolezza di ogni lingua, rispetto alle attività di apprendimento automatico, statistiche e analisi dei dati, che cercherò di elencare di seguito.

R

Punti di forza

  • R è stato progettato e sviluppato per statistici e analisti di dati, quindi fornisce, out-of-the-box (ovvero fanno parte del linguaggio stesso), funzionalità e servizi per gli statistici, che non sono disponibili in Python, a meno che tu installa un pacchetto correlato. Ad esempio, il frame di dati, che Python non fornisce, a meno che non si installi il famoso pandaspacchetto Python . Ci sono altri esempi come matrici, vettori, ecc. In Python ci sono anche strutture di dati simili, ma sono più generali, quindi non specificamente mirate per gli statistici.

  • Ci sono molte biblioteche statistiche.

Debolezza

Pitone

Punti di forza

  • Molte persone e aziende, tra cui Google e Facebook, investono molto in Python. Ad esempio, il principale linguaggio di programmazione di TensorFlow e PyTorch (due framework di machine learning ampiamente utilizzati) è Python. Pertanto, è molto improbabile che Python non continui ad essere ampiamente utilizzato nell'apprendimento automatico per almeno altri 5-10 anni.

  • La comunità Python è probabilmente molto più grande della comunità R. In effetti, per esempio, se guardi l'indice di Tiobe , Python è al terzo posto, mentre R al 20 °.

  • Python è anche ampiamente usato al di fuori delle statistiche o delle comunità di apprendimento automatico. Ad esempio, viene utilizzato per lo sviluppo Web (vedere ad esempio i framework Python Django o Flask).

  • Esistono molte librerie di apprendimento automatico (ad es. TensorFlow e PyTorch).

Debolezza

  • Non fornisce, immediatamente, le funzionalità statistiche e di analisi dei dati fornite da R, a meno che non si installi un pacchetto appropriato. Questa potrebbe essere una debolezza o una forza, a seconda del tuo punto di vista filosofico.

Vi sono altri possibili vantaggi e svantaggi di queste lingue. Ad esempio, entrambe le lingue sono dinamiche. Tuttavia, questa funzione può essere sia un vantaggio che uno svantaggio (e non è strettamente correlata all'apprendimento automatico o alle statistiche), quindi non l'ho elencata sopra. Ho evitato di menzionare le caratteristiche del linguaggio supponente, come la leggibilità del codice e la curva di apprendimento, per ovvie ragioni (ad esempio, non tutte le persone hanno la stessa esperienza di programmazione).

Conclusione

Vale la pena imparare Python se stai studiando l'apprendimento automatico o le statistiche. Tuttavia, ciò non significa che non utilizzerai più R. R potrebbe essere ancora più pratico per alcune attività.


3
Sembra che il set di funzionalità "out of the box" sia irrilevante. La cosa rilevante è la disponibilità di pacchetti che fanno quello che vuoi, no?
Decano MacGregor il

1
@DeanMacGregor Se non si ha accesso a Internet, questa funzione è rilevante! Inoltre, se un linguaggio di programmazione fornisce già una funzionalità pronta all'uso, non è necessario perdere tempo a cercarla.
nbro,

Considerando che Python è fortemente infestato dall'essere "batterie incluse", la sua debolezza non è quella che incontri spesso. Soprattutto perché ci sono installazioni di Python in uso che fanno sono inclusi pacchetti statistici. Per la scienza dei dati in particolare, Anaconda è piuttosto popolare e risolve la tua preoccupazione immediata.
Albero

6

Non avevo questa scelta perché ero costretto a passare da R a Python:

Dipende dal vostro ambiente : Quando si è inserito in uno straordinario ingegnere reparto, gruppo di lavoro tecnico o qualcosa di simile a Python è più fattibile.

Quando sei circondato da scienziati e soprattutto statistici , stai con R.

PS: R offre anche keras e tensorflow sebbene sia implementato sotto il cofano di Python. Solo cose molto avanzate ti faranno avere bisogno di Python. Anche se mi sto abituando sempre più a Python, la sintassi in R è più facile . E sebbene ogni pacchetto abbia il suo, è in qualche modo coerente mentre Python non lo è ... E ggplot è così forte. Python ha un clone (plotnine) ma manca di diverse (importanti) funzionalità. In linea di principio puoi fare quasi quanto in R ma soprattutto la visualizzazione e il wrangling dei dati è molto più facile in R. Quindi, la più famosa libreria Python, i panda, è un clone di R.

PSS: la statistica avanzata punta decisamente a R. Python offre molti strumenti e metodi quotidiani per uno scienziato di dati, ma non raggiungerà mai quei> 13.000 pacchetti forniti da R. Ad esempio, ho dovuto fare una regressione inversa e Python non lo offre. In R puoi scegliere tra diversi test di confidenza e se è lineare o non lineare. Lo stesso vale per i modelli misti: è implementato in Python ma è così semplice che non riesco a capire come questo possa essere sufficiente per qualcuno.


4

Direi di si. Python è migliore di R per la maggior parte delle attività, ma R ha la sua nicchia e vorresti comunque usarlo in molte circostanze.

Inoltre, l'apprendimento di una seconda lingua migliorerà le tue capacità di programmazione.

La mia personale prospettiva sui punti di forza di R vs Python è che preferirei R per un piccolo programma monouso che coinvolge tabelle o grafici, o lavoro esplorativo sulla stessa linea. Preferirei Python per tutto il resto.

  • R è davvero buono per il table mashing. Se la maggior parte di ciò che farà un determinato programma è creare alcune tabelle in forme diverse, allora R è la cosa da scegliere. Python ha strumenti per questo, ma R è progettato per questo e lo fa meglio.
  • Vale la pena passare a R ogni volta che è necessario creare un grafico, perché ggplot2 è un capolavoro dell'usabilità dell'API e matplotlib è un horror strisciante.
  • Python è ben progettato per la programmazione generale. Ha un set molto ben progettato di strutture dati standard, librerie standard e dichiarazioni di flusso di controllo.
  • R è scarsamente adatto per la programmazione per scopi generici. Non gestisce bene i dati strutturati ad albero o graficamente. Ha alcune regole (come essere in grado di esaminare e modificare il proprio ambito genitore) che sono immediatamente convenienti, ma quando utilizzate portano a programmi che sono difficili da crescere, modificare o comporre.
  • R ha anche alcune cose chiaramente brutte in esso. Questi sono per lo più solo avanzi storici come i tre diversi sistemi di oggetti.

Per approfondire l'ultimo punto: la programmazione del computer eseguita bene è lego in cui si creano i propri mattoncini (funzioni e moduli).

I programmi vengono generalmente modificati e riproposti dopo il loro design originale. Man mano che le costruisci, è utile pensare a quali parti potrebbero essere riutilizzate e costruirle in modo generale per collegarle agli altri mattoni.

R ti incoraggia a fondere tutti i mattoni insieme.


1

Come altri hanno già detto, non è un "interruttore". Ma vale la pena aggiungere Python al tuo arsenale? Direi certamente. Nella scienza dei dati, Python è popolare e sta diventando sempre più popolare, mentre R si sta ritirando in qualche modo. E nei settori dell'apprendimento automatico e delle reti neurali, direi che Python è la lingua principale ora - non credo che R si avvicini molto qui in termini di utilizzo. La ragione di tutto ciò è la generalità. Python è inteso come un linguaggio di programmazione generale e consente di eseguire facilmente script di tutti i tipi di attività. Se stai rigorosamente all'interno di un mondo statistico ben strutturato, R è fantastico, ma con l'IA spesso finisci per dover fare cose nuove e varie, e non credo che R possa battere Python in questo. E per questo motivo,


0

Questa è totalmente la mia opinione personale.

Ho letto nel mio ufficio (in un cantiere) che "Esiste lo strumento giusto per ogni compito".

Mi aspetto di dover affrontare una serie di compiti, come programmatore. Voglio il maggior numero possibile di strumenti per "acquistare o investire". Un giorno uno strumento mi aiuterà a risolverlo, un altro giorno qualche altro strumento. R (per le statistiche) e Python (per in generale) sono due strumenti che sicuramente voglio con me e penso che valga la pena investire per me.

Per quanto riguarda lo switch, userò lo strumento più efficiente che conosco (dove l'efficienza è misurata in base alle esigenze del cliente, all'investimento in termini di tempo e costi e alla facilità di codifica). Più strumenti conosco, più è bello! Naturalmente c'è un limite pratico ad esso.

Tutto ciò è una mia opinione personale e non necessariamente corretta.


0

Sembra che tu abbia investito 1 anno per la scienza dei dati con R e incorporato nell'ambiente R, ma desideri esplorare Python per la scienza dei dati.

Per prima cosa apprendi le basi del pitone come funzionano le liste e la tupla e come funzionano le classi e gli oggetti.

Quindi sporcati le mani con alcune librerie come i panda matplotlib intorpiditi. Scopri tensorflow o keras e poi vai alla scienza dei dati.


-1

Nessuno dei due conigli che insegue due conigli

E sì, Python è più popolare. Lavoro in entrambi ma, parlando di affari, è facile trovare lavoro su Python che in R.

Quindi, potresti:

  • Scegli Python perché è più popolare. Tuttavia, è necessario iniziare da zero.

O

  • Resta con R, dopo tutto, hai un anno di allenamento con R. Ma non è popolare.

Il suggerimento qui che l'apprendimento di un linguaggio di programmazione aggiuntivo in qualche modo ti lascerà peggio ancora è senza senso. Imparare ulteriori linguaggi di programmazione, specialmente quelli che non hanno familiarità, miglioreranno sempre le tue abilità di programmatore in qualsiasi lingua.
Will Da Silva,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.