Python pentru utilizatorii R (repostare)

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

(Acest articol a fost publicat pentru prima dată pe Terminarea geneticiiși cu amabilitate a contribuit la R-bloggeri). (Puteți raporta problema legată de conținutul acestei pagini aici)


Doriți să vă distribuiți conținutul pe R-bloggeri? dați clic aici dacă aveți un blog, sau aici dacă nu aveți.

Acesta este repostat din original la https://blog.stephenturner.us/p/python-for-r-users.

O căutare pe Google pentru „R vs Python” returnează mii de accesări pe site-uri precum Reddit, IBM, Datacamp, Coursera, Kaggle și multe altele. O analiză rapidă Google Trends arată că această interogare de căutare a crescut constant în ultimul deceniu.

Analiza Google Trend a „R vs Python” la nivel mondial (gtrendsR+ggplot2).

Orice om de știință de date real ar fi de acord că acest argument este o prostie, că răspunsul corect este să folosești cel mai bun instrument pentru job. Ceea ce este „cel mai bun” nu este întotdeauna ușor de răspuns. Uneori, „cel mai bun instrument” ar putea fi cel cu care ești cel mai familiar și pe care îl poți scrie cel mai ușor. La urma urmei, timpul de calcul este ieftin în comparație cu timpul inginerului de software. În alte cazuri, există cu adevărat o alegere mai bună în funcție de problemă (de exemplu, ecosistemul AI este în general mai bine dezvoltat în Python, în timp ce ecosistemul Bioconductor oferă lui R un cadru bogat pentru multe tipuri de sarcini bioinformatice). Sunt parțial față de R/tidyverse pentru analiza și manipularea datelor tabelaredar dacă polarii sau panda sunt treaba ta, e tare și asta.

Dincolo de „alegeți instrumentul potrivit”, cel mai mare sfat al meu pentru cursanți și studenți când sunt întrebați despre „R vs Python” a fost să învețe ambele limbi, dar învață una dintre ele atât de bine încât să fie la nivel nativ fluent în limbaj. Adică, deveniți atât de confortabil într-o limbă, încât rareori trebuie să căutați documentație, în care aveți o intuiție naturală despre cum să implementați cel mai bine o varietate de sarcini de zi cu zi, în care știți să scrieți cod, documente și teste unitare fără mă gândesc cu adevărat la asta.

R este limba aia pentru mine. Pot să citesc, să scriu, să depanez și să împachetez cod în Python, dar nu îmi vine la fel de ușor. Am colectat și marcat resurse de-a lungul anilor la care m-am apelat pentru a scrie și a citi Python, provenind din fluența nativă a R. LLM-urile au un loc nou și în acest domeniu și, în cele din urmă, ating asta.

Dacă abia ați început să folosiți Python sau programarea în general, există mii de cursuri și resurse care vă vor ajuta să începeți. Cel mai preferat de recomandat este cursul CS50 al lui David Malan la Harvard. Materialele de curs sunt Aiciiar întregul curs de 16 ore este disponibil pe YouTube. Revizuiesc încă din când în când secțiunea OOP. Probabil că acoperă concepte pe care deja le cunoașteți bine, deoarece aceasta este menită să fie o introducere în programare, folosind Python.

https://www.youtube.com/watch?v=nLRL_NcnK-4

learnxinyminutes.com are o colecție de instrucțiuni foarte scurte despre diferite limbaje de programare. Acestea presupun că ați mai programat în alte limbi și înțelegeți controlul fluxului, POO, funcțiile, clasele etc. Învață X în Y minute unde X=Python turul este aici: learnxinyminutes.com/docs/python/. Este un loc bun pentru a începe dacă nu trebuie să învățați ce este o buclă for sau cum funcționează controlul fluxului. Acesta este pur și simplu un script Python lung, cu comentarii care demonstrează principalele caracteristici ale limbajului pentru programatori care provin dintr-o altă limbă.

Reticulat este un pachet R care permite interoperabilitatea între R și Python. Vă permite să apelați Python din R, să traduceți între obiecte R și Python și să creați legături către diferite medii virtuale Python sau medii Conda.

The Primer despre vigneta Python pentru utilizatorii R în pachetul reticulat este un loc grozav de început dacă sunteți un utilizator R experimentat și doriți să știți cum să scrieți cod Python pentru a face lucruri în R cu care sunteți familiarizat. Primerul acoperă structuri de date, iterație, indexare, definirea funcției, clase, metode dunder, iteratoare, generatoare, importuri și module, decoratori și multe altele.

Nu am întâlnit-o personal pe Emily, dar am urmărit-o de când i-am văzut discuția rstudio::global 2020 despre construirea unui ecosistem de pachete R în interiorul organizației dvs. (video, diapozitive, post). Este o discuție grozavă dacă programați în R, Python, Rust, orice altceva și construiți din pachete de instrumente open-source numai pentru uzul intern al organizației.

Emily a publicat recent o serie în trei părți despre ergonomia și modelele Python pentru dezvoltatorii experimentați R. Linkuri către postările ei cu descrierea ei de mai jos.

  1. Python Rgonomics: Schimbarea limbilor înseamnă schimbarea mentalității – nu doar sintaxă. Noile dezvoltări ale instrumentelor python pentru știința datelor, cum ar fi polarii și interfața obiectelor seaborn, pot capta „simțirea” care se transformă din dragostea R/tidyverse, deschizând în același timp ușa către fluxuri de lucru cu adevărat pythonice.

  2. Modelele Rgonomice ale polarilor: În această postare ulterioară pentru Python Rgonomics, ne aprofundăm câteva dintre funcționalitățile avansate de dispută de date din python. polars pachet pentru a vedea cum sunt instrumentele electrice, cum ar fi selectoarele de coloane și structurile de date imbricate, oglindesc cel mai bun dplyr şi tidyrsintaxa expresivă și concisă a lui

  3. Modele de bază Python Rgonomic: A fi confortabil într-o limbă nouă înseamnă mai mult decât pachetele pe care le utilizați. Zahărul sintactic din python de bază crește eficiența și estetica codului python în moduri de care utilizatorii R se pot bucura în pachete precum glue şi purrr. Această postare colectează o pungă de instrumente diverse pentru dispute, formatare (f-strings), repetare (liste de înțelegere), falsificarea datelor și salvarea obiectelor (pickle).

În plus, nu am reușit să reușesc să postulez::conf(2024) anul acesta, dar de la câțiva colegi care au făcut-o, am auzit-o că vorbind despre acest subiect a fost grozavă. Discuțiile de la conferință nu sunt încă online, dar Posit le postează de obicei pe YouTube la câteva luni după conferință. Descrierea discursului ei de la agenda conferintei:

Python Rgonomics

Limbile pentru știința datelor sunt din ce în ce mai interoperabile cu progrese precum Arrow, Quarto și Posit Connect. Dar oamenii de știință nu sunt. Învățarea sintaxei de bază a unui nou limbaj este ușor, dar reînvățarea ergonomiei care ne ajută să fim hiperproductivi este dificilă. În această discuție, voi explora ergonomia influentă a tidyverse-ului lui R. În continuare, voi recomanda o stivă îngrijită care oglindește aceste ergonomii, fiind în același timp cu adevărat cu adevărat pitonice. În special, vom explora pachete (polare, obiecte seaborn, greattables), cadre (Shiny, Quarto), instrumente de dezvoltare (pyenv, ruff și pdm) și IDE-uri (extensii VS Code). Publicul ar trebui să plece simțindu-se inspirat să încerce python, beneficiind în același timp de cunoștințele și expertiza lor actuală.

Cartea lui Hadley, Mine și Garrett R for Data Science este o citire obligatorie pentru oricine dorește să-și îmbunătățească abilitățile R pentru analiza și vizualizarea datelor, iar cea de-a doua ediție poate fi citită gratuit online la r4ds.hadley.nz.

Arthur Turrell si altii au scris Python pentru știința datelor (aeturrell.github.io/python4DS), puternic inspirat de R4DS, majoritatea capitolelor reflectând R4DS. Imaginea de mai jos arată TOC-urile din ambele cărți. Cartea folosește mai ales panda și les-plot („ggplot2 pentru python”).

The Shiny pentru documentele Python (shiny.posit.co/py/docs) sunt destul de bune pentru a intra în Shiny pentru Python, mai ales dacă aveți ceva experiență cu Shiny pentru R.

Dacă sunteți în căutarea unei abordări mai mari de a ține mâna, v-aș recomanda Gordon Shotwelle gratuit Tablouri de bord web reactive cu curs strălucitor disponibil pe Talk Python Training.

Nu te îmbunătățești la Python citind despre Python sau urmărind videoclipuri despre Python. Nu lipsesc resursele bune pentru exercițiile Python. Câteva resurse pe care le-am găsit deosebit de utile sunt enumerate mai jos.

  • Canalul YouTube al lui Corey Schafer (youtube.com/@coreyms): Acest canal are liste de redare cu videoclipuri scurte și tutoriale despre Pandas, Matplotlib, OOP și multe alte explicații video scurte și lungi pe care le-am găsit utile.

  • Python on Exercism (exercism.org/tracks/python): O mulțime de exerciții gratuite.

  • Practicați Python (practicepython.org): Mai multă practică!

  • Automatizați chestiile plictisitoare cu Python (automatetheboringstuff.com): O carte online gratuită cu proiecte simple pentru automatizarea sarcinilor plictisitoare (redenumirea fișierelor etc.).

  • Apariția Codului (adventofcode.com): Un calendar de Advent de mici puzzle-uri de programare pentru o varietate de seturi de abilități și niveluri de abilități care pot fi rezolvate în orice limbaj de programare doriți. Începe în fiecare an în preajma sărbătorilor, dar poți să te întorci și să vezi puzzle-uri vechi din anii anteriori oricând. Acestea sunt distractive și pentru micile competiții prietenoase de birou.

Dintre toate sfaturile din această postare, acesta va deveni cel mai rapid învechit, așa că îl voi păstra scurt. Folosește LLM-urile unde poți! ChatGPT și alte LLM-uri pot acționa în esență ca programator pereche sau StackOverflow personal, ajutându-vă să vă traduceți expertiza R în Python cu explicații contextualizate. Puteți cere ChatGPT echivalente Python ale funcțiilor familiare R, comparații de sintaxă sau exemple de cod specifice, adaptate pentru manipularea datelor, analiza statistică sau vizualizarea. Puteți să inserați codul Python, să întrebați ce face și să vedeți ce cod R echivalent ar fi fost. Lipiți mesajele de eroare și codul dvs. și vă va spune ce a mers prost și cum să schimbați lucrurile. Îmi imaginez că toate magistralele LLM sunt mai bune cu Python decât aproape orice alt limbaj de programare, așa că folosește aceste instrumente acolo unde poți!

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.