Pitanje:
Python kao radni stol za statistiku
Fabian Fagerholm
2010-08-12 15:46:45 UTC
view on stackexchange narkive permalink

Mnogo ljudi koristi glavni alat kao što je Excel ili neka druga proračunska tablica, SPSS, Stata ili R za svoje statističke potrebe. Mogli bi se obratiti nekom posebnom paketu za vrlo posebne potrebe, ali puno se stvari može učiniti pomoću jednostavne proračunske tablice ili općeg statističkog paketa ili programskog okruženja statistike.

Python mi se uvijek sviđao kao programiranje jezika, a za jednostavne potrebe lako je napisati kratki program koji izračunava što trebam. Matplotlib mi omogućuje da to zacrtam.

Je li itko u potpunosti prešao s, recimo R, na Python? R (ili bilo koji drugi statistički paket) ima puno funkcionalnosti specifičnih za statistiku i ima podatkovne strukture koje vam omogućuju razmišljanje o statistici koju želite izvesti, a manje o internom predstavljanju vaših podataka. Prednost Pythona (ili nekog drugog dinamičnog jezika) omogućuje mi programiranje na poznatom jeziku visoke razine i omogućuje mi programsku interakciju sa sustavima iz stvarnog svijeta u kojima se nalaze podaci ili iz kojih mogu vršiti mjerenja. Ali nisam pronašao nijedan Python paket koji bi mi omogućio da stvari izrazim "statističkom terminologijom" - od jednostavne deskriptivne statistike do složenijih multivarijantnih metoda.

Što možete preporučiti ako želim koristiti Python kao "radni stol za statistiku" koji će zamijeniti R, SPSS itd .?

Što bih dobio i izgubio na temelju vašeg iskustva?

Usput, postoji novi pyred python stats subreddit koji se gasi: http://www.reddit.com/r/pystats
Kada trebate stvari pomicati po naredbenom retku, pythonpy (https://github.com/Russell91/pythonpy) je lijep alat.
26 odgovori:
#1
+313
ars
2010-08-13 10:30:09 UTC
view on stackexchange narkive permalink

Teško je zanemariti bogatstvo statističkih paketa dostupnih u R / CRAN. Usprkos tome, provedem puno vremena u zemlji Python i nikad nikoga ne bih razuvjerio da se zabavlja kao ja. :) Evo nekoliko knjižnica / poveznica koje bi vam mogle biti korisne za statistički rad.

  • NumPy / Scipy Vjerojatno već znate za njih. Ali dopustite mi da istaknem Kuharicu u kojoj možete čitati o mnogim statističkim objektima koji su već dostupni i Popis primjera koji je sjajna referenca za funkcije (uključujući manipulaciju podacima i druge operacije) . Još jedna korisna referenca je Distributions in Scipy Johna Cooka.

  • pande Ovo je zaista lijepa knjižnica za rad sa statističkim podacima - tablični podaci, vremenske serije, podaci panela. Uključuje mnoge ugrađene funkcije za sažetke podataka, grupiranje / agregiranje, okretanje. Također ima biblioteku statistike / ekonometrije.

  • larry Označeni niz koji se lijepo poigrava s NumPy. Pruža statističke funkcije koje nisu prisutne u NumPyu i dobre su za manipulaciju podacima.

  • python-statlib Prilično nov pokušaj koji je kombinirao brojne raštrkane knjižnice statistika. Korisno za osnovnu i opisnu statistiku ako ne koristite NumPy ili pande.

  • statsmodels Statističko modeliranje: Linearni modeli, GLM, između ostalog.

  • scikits Statistički i znanstveni računalni paketi - posebno izglađivanje, optimizacija i strojno učenje.

  • PyMC Za vaše potrebe Bayesova / MCMC / hijerarhijskog modeliranja. Toplo preporučljivo.

  • Modeli smjese PyMix.

  • Biopython Korisno za učitavanje vaših bioloških podataka u python i pruža neke osnovne statističke alate / alate za strojno učenje za analizu.

Ako brzina postane problem, razmislite o Theano - s dobrim uspjehom koriste ljudi koji uče duboko.

Postoji puno drugih stvari, ali ovo je ono što smatram najkorisnijim u skladu s navedenim.

Svi su odgovori bili i korisni i korisni i svi bi zaslužili da budu prihvaćeni. Ovaj, međutim, vrlo dobro radi u odgovoru na pitanje: s Pythonom morate sastaviti puno dijelova da biste radili što želite. Ti će smjerovi bez sumnje biti vrlo korisni svima koji se žele baviti statistikom / modeliranjem / itd. s Pythonom. Hvala svima!
@ars, molim vas, znate li koji je najbolji način korištenja Pythona u sustavu Windows?
@StéphaneLaurent Različite dijelove obično instaliram sam, ali za brzi početak / instalaciju možete razmotriti: [pythonxy] (http://code.google.com/p/pythonxy/).
Ova skripta instalira mnoge gore navedene biblioteke: http://fonnesbeck.github.com/ScipySuperpack/
Pythonxy je lijep, ali može postati dosadan ako želite raditi velike proračune jer je dostupan samo za 32 bita. Evo neslužbenih binarnih datoteka za instaliranje mnogih python paketa. Mogu biti vrlo korisni ako se odlučite raditi pod prozorima. http://www.lfd.uci.edu/~gohlke/pythonlibs/ @StéphaneLaurent
Netko treba stvoriti Kickstarter za aplikaciju poput GUY-a nalik Pythonu za izradu statističkih podataka sa svim tim ugrađenim alatima. Ako moram koristiti Stata još minutu, mogao bih jednostavno nekoga ubiti ...
Je li ["rpy2"] (http://rpy2.bitbucket.org/) skriven negdje tamo?Osjećam se bitno ako želite pokrenuti R iz pythona
Da .. Možete pokrenuti R iz pythona, relativno jednostavno, izvorno ili putem drugih knjižnica.Čini se da je glavni argument za R taj što je većina funkcija nužno već upakirana u R ili dostupna u CRAN-u.Python također ima Spyder, Anaconda, Enthough Python, Jupyter bilježnice ... a ovih bih dana očekivao s popularnošću pythona, većina funkcija dostupnih u R-u vjerojatno je već dostupna u Pythonu. Čini se da su prethodni odgovori datirali iz davnina.Pitate se je li R ipak bolji od Pythona .. je li više na jednakom terenu?
Također za one od vas koji preporučuju R, jeste li isprobali pythons OO mogućnosti programiranja?Ne koristi li OO mogućnosti u Pythonu, dajući mu u osnovi slične mogućnosti kao R?
Kako se Larry uspoređuje s [xarry] (http://xarray.pydata.org/en/stable/why-xarray.html)?
Theano je prilično zastario.Većina ljudi sada koristi Tensorflow.
#2
+144
gappy
2011-10-13 21:41:40 UTC
view on stackexchange narkive permalink

Kao numerička platforma i zamjena za MATLAB, Python je dostigao zrelost prije najmanje 2-3 godine, a sada je u mnogim aspektima puno bolji od MATLAB-a. Otprilike u to vrijeme pokušao sam se prebaciti na Python s R-a i nisam uspio. Jednostavno je previše R paketa koje svakodnevno koristim i koji nemaju Python ekvivalent. Odsutnost ggplot2 dovoljno je da bude showstopper, ali ima ih mnogo više. Uz to, R ima bolju sintaksu za analizu podataka. Razmotrimo sljedeći osnovni primjer:

Python :

  results = sm.OLS (y, X) .fit ()  

R :

  rezultati <- lm (y ~ x1 + x2 + x3, podaci = A)  

Što smatrate izražajnijim? U R možete razmišljati u terminima varijabli i možete lako proširiti model na, recimo,

  lm (y ~ x1 + x2 + x3 + x2: x3, data = A) 

U usporedbi s R, Python je jezik na niskoj razini za izradu modela.

Kad bih imao manje zahtjeva za napredne statističke funkcije i već kodirao Python na većem projekt, smatrao bih da je Python dobar kandidat. Razmislio bih o tome i kada je potreban pristup bez kostiju, bilo zbog ograničenja brzine, bilo zato što R paketi ne pružaju prednost.

Za one koji rade relativno naprednu statistiku upravo sada , odgovor nema smisla i glasi ne . Zapravo, vjerujem da će Python ograničiti vaše mišljenje o analizi podataka. Trebat će nekoliko godina i mnogo čovjeko-godišnjih napora da se proizvedu zamjene modula za 100 bitnih R paketa, a čak će se i tada Python osjećati kao jezik na kojem su ugrađene mogućnosti analize podataka. Budući da je R već zabilježio najveći relativni udio primijenjenih statističara u nekoliko polja, ne vidim da će se to uskoro dogoditi. Rekavši to, slobodna je država i znam ljude koji rade statistiku u APL-u i C.

+1 Ovaj mi se odgovor sviđa samo zbog naglaska koji ste stavili na R kao statistički jezik za rad s podacima pomoću formula i slično. To je rečeno, očekujem veliki pozitivan učinak pandi (u kombinaciji sa statističkim modelima) u Python zajednici.
u Python zajednici, patsy rješava potrebu za "formulom", koju opisujete, povremeno poboljšavajući ono što R nudi: http: //patsy.readthedocs.org/en/v0.1.0/index.html Što je lijepo u Pythonu jest da se sa svim tim aspektima postupa pravokutno. Pandas će se pobrinuti za vremenske serije i prikaz podataka / serija. patsy za formule. numpy za predstavljanje niza i vektorizaciju. statsmodels obavija statistiku algos. scipy za optimizaciju i gomilu drugih stvari. Rezultat su čišća sučelja. U usporedbi s tim, R je zreliji, ali je dlačica. ../ ..
../ .. Mislim da će dugoročno sile potiskivati ​​u smjeru sve više i više integracije Pythona i shvatit ćete da će postati prilična konkurencija R. Čišćenje podataka u R-u je takav PIA u usporedbi s Pythonom, i to nikada nije beznačajan dio posla. - [blais] (http://stats.stackexchange.com/users/13247/blais)
Više bih volio python za rukovanje tekstom i drugo intenzivno kodiranje, dok se za grafičke i statističke svrhe, iskreno, neću vidjeti kako se prebacujem na bilo koju drugu platformu iz R. Ali kodiranje u pythonu je zabavno i kao punopravni programski jezik, ne razumijem. ne vidim nikakvu štetu u učenju, zajedno s R i Matlabom.
kao nadopuna: prvi primjer u dokumentaciji statsmodels sada je `results = smf.ols ('Lutrija ~ Pismenost + np.log (Pop1831)', data = dat) .fit ()`. Statsmodels je još uvijek daleko iza ostalih statističkih paketa poput R u pogledu pokrivenosti, ali sve je više stvari koje možete učiniti u pythonu prije nego što budete trebali ugrabiti drugi jezik ili statistički paket. (GEE i Mixed bit će u sljedećem izdanju.)
"Ono što je lijepo u Pythonu je to što se svi ovi aspekti obrađuju pravokutno ...". Ne slažem se po mnogim točkama. Postoje značajna preklapanja između numpy, scipy i statsmodela. R-ov dizajn je puno modularniji i ekonomičniji. Osim toga, većina u ne svim konceptualnim inovacijama u jezicima usmjerenim na podatke (ne samo formule, već i okviri podataka, gramatika grafika, karata kao gramatika medela, pletiva i gramatika podataka dplyr koja se još uvijek razvija) potječu iz R. Čini se da je zajednica Python uvijek korak iza i pretjerano usredotočena na izvedbu.
@gappy: to je zato što je python općeniti programski jezik, a postoji i mnoštvo drugih namjena koje zahtijevaju izvedbu.Nije iznenađujuće da se to filtrira u zajednicu python statistika.Osim toga, toliko se danas traži analiza velikih podataka (čak i ako to znači 2Gb skupove podataka na prijenosnom računalu), da je razumljivo da statistička zajednica želi da se usredotoči na učinkovitost.
#3
+95
Josh Hemann
2010-08-25 10:19:47 UTC
view on stackexchange narkive permalink

Prvo, dopustite mi da kažem da se slažem s odgovorom Johna D Cooka: Python nije jezik specifičan za domenu poput R, i u skladu s tim, puno ćete više moći s njim učiniti dalje. Naravno, ako je DS DSL znači da će najnoviji algoritmi objavljeni u JASA-i gotovo sigurno biti u R. Ako radite uglavnom ad hoc posao i želite eksperimentirati s najnovijom tehnikom laso regresije, recimo, R je teško pobijediti. Ako radite više proizvodnih analitičkih poslova, integrirate se sa postojećim softverom i okruženjima i brinete brzina, proširivost i održivost, Python će vam puno bolje služiti.

Drugo, ars je dao sjajan odgovor s dobrim vezama. Evo još nekoliko paketa koje smatram ključnim za analitički rad u Pythonu:

  • matplotlib za lijepu grafiku kvalitetne publikacije.
  • IPython za poboljšanu, interaktivnu Python konzolu. Što je još važnije, IPython pruža moćan okvir za interaktivno, paralelno računanje u Pythonu.
  • Cython za jednostavno pisanje C proširenja u Pythonu. Ovaj vam paket omogućuje da uzmete dio računski intenzivnog Python koda i lako ga pretvorite u C proširenje. Tada ćete moći učitati proširenje C kao i bilo koji drugi Python modul, ali kôd će se izvoditi vrlo brzo jer je u C.
  • PyIMSL Studio za kolekciju stotina matematičkih i statističkih algoritama koji su temeljito dokumentirani i podržani. Potpuno iste algoritme možete nazvati iz Pythona i C, s gotovo istim API-jem i dobit ćete iste rezultate. Potpuno otkrivanje: Radim na ovom proizvodu, ali ga i puno koristim.
  • xlrd za jednostavno čitanje u Excel datotekama.

Ako želite interaktivniji IDE / konzolu sličniji MATLAB-u, pogledajte Spyder ili dodatak PyDev za Eclipse.

Još jedan sjajan odgovor! PyIMSL Studio zvuči zanimljivo, šteta što nije otvoren izvor. Ipak, postoji neko preklapanje s NumPy / SciPy. U svakom slučaju, mislim da su ovo bili dobri savjeti za svakoga tko želi sastaviti vlastiti radni stol za statistiku Pythona!
Besplatno je kao u pivu (za nekomercijalnu upotrebu), ali nažalost, nije besplatno kao u govoru.
R nije DSL u uobičajenom smislu pojma. To je cjelovit, Turingov cjeloviti programski jezik.
@hadley: Možda koristim "DSL" previše kolokvijalno, ali ono što vrijedi, stranica Wikipedije na DSL-ovima izričito navodi S + i R kao primjere DSL-ova i Pythona kao jezik opće namjene. Pogledajte http://en.wikipedia.org/wiki/Domain-specific_language. U istom smislu, SAS je Turingov cjelovit (samo ako se koristi IML makro komponenta), ali teško bih ga nazvao cjelovitim jezikom u praktičnom smislu. Smatram da je R neprocjenjiv u svom radu, ali pokušavam kodirati jezike opće namjene što je više moguće, umjesto da pokušavam raditi sve na R-u (ili Excel u tom smislu).
Mislim da je nepravedno uključiti R i S na isti popis kao i ti drugi jezici u wikipediji - u R-u ne postoji ništa što možete učiniti u pythonu. Naravno da postoje mnoge stvari koje više odgovaraju drugom programskom jeziku, ali isto vrijedi i za Python.
Ne vidim DA li se spominju u članku WP-a o DSL-u. Čini se da su ispravniji statistički primjeri bugovi / jagovi. Ja ću ih dodati.
Ahh, hadley je uklonio R i S + sa stranice Wikipedije istog dana kad smo razmijenili komentare, 13. listopada 2011. Dakle, često čujem mantru "R su razvili i za statističare" kao svoju temeljnu snagu. Izgleda da je to sada i jezik opće namjene ...
Pa, mogu li dobiti kod s više niti s R?Mrežni asinkroni U / I?Vjerujte mi, ovi slučajevi upotrebe zapravo nastaju u znanstvenom računanju.R je DSL, po mom mišljenju.Snažna je u statistici, a loša u većini drugih stvari.
@hadley: Vjerojatno biste trebali otići i ukloniti skripte ljuske, PostScript, HTML + CSS3, [MediaWiki predlošci i još mnogo toga] (http://beza1e1.tuxen.de/articles/accidentally_turing_complete.html) s te stranice.
Smatram da, u proizvodnji, ako stari ne radi posao, ponekad i novi.I nije baš kao da se temelji također ne peku u R.
@hadley citira Wikipedia: * "Jezik specifičan za domenu (DSL) računalni je jezik specijaliziran za određenu domenu aplikacije. To je za razliku od jezika opće namjene (GPL) koji je široko primjenjiv na domenama i nema specijalne značajkeza određenu domenu. "* Teško je opravdati R i S +, ne spadaju u opseg ove definicije.
Sviđa mi se python i koristim ga, ali ako je R DSL, a python nije, zašto se i danas borim da pronađem dobar paket koji jednostavno može uklopiti OLS s više odgovora i dobiti pristojne statistike.Svugdje bi trebao moći kliziti krilima.Postoje neke stvari sazrele u pythonu, a postoje i druge stvari koje su sazrele u R. Danas, mislim da je riječ o spajanju stvari radi cilja, jer su R i python tek alat za postizanje nekog posla.
#4
+61
csgillespie
2010-08-12 15:59:17 UTC
view on stackexchange narkive permalink

Mislim da nema argumenata da raspon statističkih paketa u cran i Bioconductor daleko premašuje bilo što što se nudi iz drugih jezika, međutim, to nije jedina stvar koju treba uzeti u obzir.

U svom istraživanju koristim R kad mogu, ali ponekad je R prespor. Na primjer, veliko MCMC pokretanje.

Nedavno sam kombinirao python i C kako bih se riješio ovog problema. Kratki sažetak: uklapanje velikog stohastičkog populacijskog modela s ~ 60 parametara i zaključivanje o oko 150 latentnih stanja pomoću MCMC-a.

  1. Čitanje podataka na pythonu
  2. Konstruirajte C podatkovne strukture u pythonu koristeći ctypes.
  3. Korištenje pythona za petlju, pozovite funkcije C koje su ažurirale parametre i izračunale vjerojatnost.

Brzi izračun pokazao je da je program potrošio 95% u funkcijama C. Međutim, nisam morao pisati bolni C kod da bih čitao podatke ili konstruirao C podatkovne strukture.


Znam da postoji i rpy, gdje python može nazvati R funkcije. Ovo može biti korisno, ali ako "samo" radite statistiku, tada bih koristio R.

Umetanje besramnog utikača za Rcpp :)
znatiželjan jeste li isprobali PyMC i usporedbu izvedbe (u odnosu na python / C) za vaše modele.
@ars: U gore navedenom slučaju, svaka je iteracija (od 10 ^ 8 iteracija) uključivala rješavanje 5 ODE-a. To je zaista trebalo učiniti na C. Ostatak koda bio je prilično jednostavan, pa je C kôd bio jednostavan. Moja je aplikacija bila nestandardna pa PyMC nije bio primjenjiv - također prije ~ 2 godine.
#5
+40
Jeromy Anglim
2010-08-12 15:58:37 UTC
view on stackexchange narkive permalink

Sljedeće rasprave o StackOverflowu mogle bi biti korisne

Sve su ove rasprave uklonjene :-(. Možda bi i ovaj odgovor trebalo ukloniti?
To je tužno. Ažurirao sam veze kako bi uputio na povratne kopije strojeva.
#6
+36
Gael Varoquaux
2011-02-05 16:49:46 UTC
view on stackexchange narkive permalink

Nisam vidio scikit-learn izričito spomenut u gornjim odgovorima. To je Python paket za strojno učenje u Pythonu. Prilično je mlad, ali izuzetno brzo raste (izjava o odricanju: Ja sam programer za nauk o nauci). Ciljevi su osigurati standardne algoritme strojnog učenja u jedinstvenom sučelju s naglaskom na brzinu i upotrebljivost. Koliko znam, u Matlabu ne možete pronaći ništa slično. Snažne strane su:

  • detaljna dokumentacija, s mnogim primjerima

  • Kvalitetni standardni nadzirano učenje (regresija / klasifikacija) alati. Točnije:

  • Sposobnost izvođenja odabira modela unakrsnom provjerom valjanosti koristeći više CPU-a

  • Učenje bez nadzora za istraživanje podataka ili smanjenje prve dimenzionalnosti, koje se lako može povezati s nadgledanim učenjem.

  • Open source , BSD licenca. Ako niste u čisto akademskom okruženju (ja sam u onome što bi bio nacionalni laboratorij u državi), ovo je puno važno jer su tada troškovi Matlaba vrlo visoki i možda razmišljate o tome da iz svog rada izvučete proizvode.

Matlab je sjajan alat, ali u mom vlastitom radu scipy + scikit-learn mi daje prednost u Matlabu jer Python zbog svog pogleda bolje radi s memorijom mehanizam (i imam velike podatke), i zato što mi scikit-learn omogućuje vrlo jednostavnu usporedbu različitih pristupa.

#7
+29
John D. Cook
2010-08-12 17:43:41 UTC
view on stackexchange narkive permalink

Jedna od prednosti prelaska na Python je mogućnost obavljanja više posla na jednom jeziku. Python je razuman izbor za drobljenje brojeva, pisanje web stranica, administrativno skriptiranje itd. Dakle, ako statistiku radite na Pythonu, ne biste morali mijenjati jezike za druge programske zadatke.

Ažuriranje: 26. siječnja 2011. Microsoft Research najavio je Sho, novo okruženje za analizu podataka temeljeno na Pythonu. Još nisam imao priliku isprobati ga, ali zvuči kao zanimljiva mogućnost ako želite pokrenuti Python i također komunicirati s .NET knjižnicama.

Napravio sam puno problema s brojevima, jednu web stranicu i nekoliko administrativnih skripti u R-u, i oni rade prilično lijepo.
#8
+28
Griffith Rees
2011-09-13 21:05:45 UTC
view on stackexchange narkive permalink

Možda je ovaj odgovor varanje, ali čini se čudnim da nitko nije spomenuo projekt rpy, koji pruža sučelje između R i Pythona. Dobivate pythonic api za većinu R-ovih funkcionalnosti zadržavajući pritom (rekao bih ljepšu) sintaksu, obradu podataka i u nekim slučajevima brzinu Pythona. Malo je vjerojatno da će Python ikad imati toliko alata za krvarenje statističkih podataka kao R, samo zato što je R dsl i statistička zajednica više ulaže u R nego možda bilo koji drugi jezik.

Ovo vidim analogno korištenje ORM-a kako bi se iskoristile prednosti SQL-a, dok Python dopušta da bude Python, a SQL SQL.

Ostali korisni paketi posebno za podatkovne strukture uključuju:

  • pydataframe replicira data.frame i može se koristiti s rpy. Omogućuje vam upotrebu R-sličnog filtriranja i operacija.
  • pyTables Koristi brzi tip podataka hdf5 ispod, postoji već godinama
  • h5py Također hdf5, ali posebno usmjeren na interakciju s numpy
  • pandama Drugi projekt koji upravlja data.frame poput podataka, radi s rpy, pyTables i numpy
Uvijek mi se čini da je rpy traljav za rad. Potrebne su velike crte kodova s ​​nekim jednostavnim funkcijama, na primjer.
Možda rmagičko proširenje za IPython (kako je istaknuo @CarlSmith) može olakšati rad s rpy2? Pogledajte http://ipython.org/ipython-doc/dev/config/extensions/rmagic.html.
#9
+26
Carl Smith
2012-07-24 06:09:46 UTC
view on stackexchange narkive permalink

Ionako zapravo ne treba odustati od R-a za Python. Ako koristite IPython s punim hrpom, imate R, Octave i Cython proširenja, tako da možete lako i čisto koristiti te jezike u svojim IPython prijenosnicima. Također imate podršku za prosljeđivanje vrijednosti između njih i vašeg prostora imena Python. Možete iznijeti svoje podatke u obliku grafikona, koristeći matplotlib i kao pravilno izvedeni matematički izrazi. Postoji mnoštvo drugih značajki, a sve to možete učiniti u svom pregledniku.

IPython je jako napredovao :)

#10
+26
Fomite
2011-08-15 18:52:43 UTC
view on stackexchange narkive permalink

Želio bih reći da sam sa stajališta nekoga tko se za moj statistički rad u velikoj mjeri oslanja na linearne modele i voli Python zbog ostalih aspekata svog posla, bio razočaran u Python kao platforma za izvođenje bilo čega osim prilično osnovnih statistika.

Smatram da R ima puno bolju podršku statističke zajednice, puno bolju primjenu linearnih modela i da budem iskren sa statističke strane, čak i uz izvrsne distribucije poput Enthought, Python se pomalo osjeća poput Divljeg zapada.

I ako ne radite samostalno, šanse da imate suradnike koji Python koriste za statistiku, u ovom su trenutku prilično malene.

#11
+26
fonnesbeck
2011-10-13 22:34:22 UTC
view on stackexchange narkive permalink

Ja sam biostatist u onome što je u biti R trgovina (~ 80 ljudi koristi R kao svoj primarni alat). Ipak, otprilike 3/4 svog vremena provodim radeći u Pythonu. To prvenstveno pripisujem činjenici da moj rad uključuje Bayesov pristup i pristupe strojnom učenju statističkom modeliranju. Python pogađa mnogo bliže točkama performansi / produktivnosti nego R, barem za statističke metode koje se ponavljaju ili temelje na simulaciji. Da sam provodio ANOVAS, regresije i statističke testove, siguran bih da bih primarno koristio R. Međutim, većina onoga što mi treba nije dostupno kao konzervirani R paket.

+1 za razlikovanje u kojem području statistike radite. Postoje područja statističkog računanja (npr. Nestrukturirana analiza teksta i računalni vid) za koja postoji mnogo funkcionalnosti u Pythonu, a Python je naizgled lingua franca u tim poddomenama. Mislim da ono što Pythonova zajednica mora sustići jest poboljšanje struktura podataka i semantike oko klasičnog statističkog modeliranja u kojima je R-ov dizajn tako dobar. Programeri scikits.statsmodels puno napreduju na tom planu: http://scikits.appspot.com/statsmodels
#12
+19
Adam
2011-10-13 00:40:10 UTC
view on stackexchange narkive permalink

Ono što tražite zove se Sage: http://www.sagemath.org/

To je izvrsno internetsko sučelje za dobro izgrađenu kombinaciju Pythona alati za matematiku.

Briljantni dio Sagea je taj što je u osnovi _sjedinjenje niza izvrsnih besplatnih alata za matematiku, statistiku, analizu podataka itd. To je više nego samo Python; ima pristup R, maksimumima, GLPK, GSL i mnogim drugim.
#13
+18
pythOnometrist
2013-04-06 01:59:03 UTC
view on stackexchange narkive permalink

Rpy2 - igrajte se s R boravkom u Pythonu ...

Daljnja razrada prema Gungovom zahtjevu:

Rpy2 dokumentacija može se naći na http: //rpy.sourceforge .net / rpy2 / doc-dev / html / uvod.html

Iz dokumentacije, Sučelje visoke razine u rpy2 osmišljeno je da olakša upotrebu R programera Pythona. R objekti su izloženi kao primjerci klasa implementiranih u Python, s R funkcijama kao vezanim metodama za te objekte u brojnim slučajevima. Ovaj odjeljak također sadrži uvod u grafiku s R: rešetkasti (rešetkasti) crteži, kao i gramatiku grafika implementiranu u ggplot2, koja omogućuje izradu složenih i informativnih crteža s malo napisanog koda, dok osnovne grafičke rešetke omogućuju sve moguće prilagodbe.

Zašto mi se sviđa:

svoje podatke mogu obraditi koristeći fleksibilnost pythona, pretvoriti ih u matricu pomoću numpy-a ili pandi i izvršiti izračunavanje u R i vratite r objekata za naknadnu obradu. Koristim ekonometriju, a python jednostavno neće imati alate za krvarenje statističkih podataka R. A R će vjerojatno ikad biti fleksibilan kao python. To zahtijeva da razumijete R. Srećom, ima lijepu zajednicu programera.

I sam Rpy2 je dobro podržan i gospodin koji ga podržava posjećuje SO forume. Instalacija sustava Windows možda je mala bol - https://stackoverflow.com/questions/5068760/bizzarre-issue-trying-to-make-rpy2-2-1-9-work-with-r-2-12- 1-using-python-2-6-un? Rq = 1 bi mogao pomoći.

Dobrodošli na stranicu, @pythOnometrist. Pretpostavljam da je ovo koristan doprinos. Možete li dati kratak sažetak Rpy2, kako bi čitatelji mogli odlučiti je li to ono što traže?
#14
+17
Turukawa
2010-08-27 15:10:36 UTC
view on stackexchange narkive permalink

Koristim Python za statističku analizu i predviđanje. Kao što su spomenuli drugi gore, Numpy i Matplotlib dobri su radni konji. Također koristim ReportLab za stvaranje PDF rezultata.

Trenutno gledam i Resolver i Pyspread, a to su Excel-ove proračunske aplikacije koje se temelje na Pythonu. Resolver je komercijalni proizvod, ali Pyspread i dalje je open source. (Ispričavam se, ograničen sam na samo jednu vezu)

Opet neki zanimljivi alati. Znao sam za Numpy, Matplotlib i ReportLab, ali Pyspread mi se čini kao zanimljiva ideja. Barem bih želio upisivati ​​Python izraze u ćelije proračunske tablice. Iako ne rješava sve moguće probleme, mogao bi biti dobar za izradu prototipova i igranje podataka.
+1 Wow proračunske tablice pythona! Još nisam čuo za to. Uvijek sam želio da OpenOffice / LibreOffice zaista prihvate i integriraju python skriptiranje u svoj softver za proračunske tablice
#15
+15
kgarten
2011-02-06 00:31:42 UTC
view on stackexchange narkive permalink

zasad sjajan pregled. Koristim python (posebno scipy + matplotlib) kao zamjenu za matlab od 3 godine rada na Sveučilištu. Ponekad se ipak vratim jer su mi poznate određene biblioteke, na pr. paket matlab wavelet-a je sjajan.

Sviđa mi se http://enthought.com/ distribucija pythona. Komercijalan je, ali besplatan za akademske svrhe i, koliko znam, potpuno otvoren. Kako radim s puno učenika, prije korištenja enthought-a ponekad im je bilo teško instalirati numpy, scipy, ipython itd. Enthought nudi instalacijski program za Windows, Linux i Mac.

Dva druga paketa vrijedno spomena:

  1. ipython (dolazi već s zamišljenim) sjajna napredna ljuska. dobar uvod je na showmedo http://showmedo.com/videotutorials/series?name=PythonIPythonSeries

  2. nltk - priručnik za prirodni jezik http://www.nltk.org/ izvrstan paket za slučaj da želite napraviti neke statistike / strojno učenje na bilo kojem korpusu.

#16
+12
Steve Lawford
2012-10-08 19:26:14 UTC
view on stackexchange narkive permalink

Ovo je zanimljivo pitanje s nekoliko izvrsnih odgovora.

Možda ćete pronaći korisnu raspravu u radu koji sam napisao s Roseline Bilina. Konačna verzija je ovdje: http://www.enac.fr/recherche/leea/Steve%20Lawford/papers/python_paper_revised.pdf (od tada se u gotovo ovom obliku pojavljuje kao "Python za objedinjena istraživanja u ekonometriji i statistici ", u Econometric Reviews (2012), 31 (5), 558-591).

#17
+10
JMS
2011-02-06 10:09:24 UTC
view on stackexchange narkive permalink

Možda nije izravno povezano, ali R ima lijepo GUI okruženje za interaktivne sesije (uredi: na Mac / Windows). IPython je vrlo dobar, ali za okruženje bliže Matlabovom možete probati Spyder ili IEP. Imao sam više sreće s kasnim korištenjem IEP-a, ali Spyder izgleda obećavajuće.

IEP: http://code.google.com/p/iep/

Spyder: http://packages.python.org/spyder/

A IEP-ovo mjesto uključuje kratku usporedbu srodnog softvera: http: / /code.google.com/p/iep/wiki/Alternatives

#18
+9
Wojciech Walczak
2014-05-07 21:36:30 UTC
view on stackexchange narkive permalink

Nitko prije nije spomenuo Orange:

Rudarstvo podataka pomoću vizualnog programiranja ili Python skriptiranja. Komponente za strojno učenje. Dodaci za bioinformatiku i rudarenje tekstom. Opremljen značajkama za analitiku podataka.

Ne koristim je svakodnevno, ali mora je pogledati svima koji više vole GUI nego sučelje naredbenog retka.

Čak i ako više volite ovo drugo, Orange je dobro upoznati s vama, jer komade naranče možete lako uvesti u svoje Python skripte u slučaju da vam zatreba neka od njegovih funkcionalnosti.

#19
+8
pnewhook
2011-10-13 04:52:18 UTC
view on stackexchange narkive permalink

Trebao bih dodati uzvikivanje za Sho, numeričko računalno okruženje izgrađeno na IronPythonu. Trenutno ga koristim za satove strojnog učenja na Stanfordu i bilo mi je od velike pomoći. Ugrađen je u linearne pakete algebre i mogućnosti crtanja. Biti .Net, lako ga je proširiti s C # ili bilo kojim drugim .Net jezikom. Mnogo mi je lakše započeti s tim kao korisnik Windows-a, nego s pravim Pythonom i NumPy-om.

#20
+8
padawan
2013-03-17 00:13:02 UTC
view on stackexchange narkive permalink

Ovdje sam pronašao sjajan uvod u pande koje predlažem da provjerite. Pandas je nevjerojatan set alata i pruža mogućnosti analize podataka na visokoj razini R-a s opsežnim bibliotekama i kvalitetom izrade Pythona.

Ovaj post na blogu daje sjajan uvod u Pande iz perspektive potpunog početnika:

http://manishamde.github.com/blog/2013/03/07/pandas-and-python-top-10/

Možete li, molim vas, napisati nekoliko riječi o tome koje ga osobine čine "sjajnim", tako da čitatelji mogu unaprijed utvrditi da li bi gledanje bilo prikladno za njih?
Oprosti. Upravo sam shvatio da sam u svoj izvorni post priložio pogrešnu vezu.
#21
+7
JKP
2012-08-10 02:13:57 UTC
view on stackexchange narkive permalink

Imajte na umu da SPSS Statistics ima integrirano Python sučelje (također R). Dakle, možete pisati programe na Pythonu koji koriste statističke postupke i proizvesti uobičajene lijepo oblikovane statističke podatke ili vratiti rezultate svom programu na daljnju obradu. Ili možete pokretati Python programe u naredbenom toku Statistics. Još uvijek morate znati naredbeni jezik Statistics, ali možete iskoristiti sve mogućnosti upravljanja podacima, izlaženje prezentacija itd. Koje nudi Statistika, kao i postupke.

#22
+6
Learner
2015-05-15 12:15:02 UTC
view on stackexchange narkive permalink

Nedavna usporedba iz DataCampa daje jasnu sliku o R i Pythonu.

Upotreba ova dva jezika u polju analize podataka. Python se obično koristi kada zadatke analize podataka treba integrirati s web aplikacijama ili ako statistički kod treba ugraditi u produkcijsku bazu podataka. R se uglavnom koristi kada zadaci analize podataka zahtijevaju samostalno računanje ili analizu na pojedinačnim poslužiteljima.

Smatrao sam da je tako koristan na ovom blogu i nadam se da će pomoći drugima da razumiju i nedavne trendove u oba ova jezika. Julia se također pojavljuje u tom području. Nadam se da ovo pomaže!

#23
+6
Digio
2015-07-23 17:35:45 UTC
view on stackexchange narkive permalink

Python mora prijeći dug put prije nego što ga se može usporediti s R. Ima znatno manje paketa od R i slabije je kvalitete. Ljudi koji se drže osnova ili se oslanjaju samo na svoje prilagođene knjižnice, vjerojatno bi mogli raditi svoj posao isključivo na Pythonu, ali ako ste netko tko treba naprednija kvantitativna rješenja, usuđujem se reći da vani ništa nije blizu R-u.

Treba također napomenuti da do danas Python nema odgovarajući znanstveni IDE u stilu Matlaba usporediv s R-Studiom (nemojte reći Spyder) i da morate razraditi sve na konzoli. Općenito govoreći, cijelo Python iskustvo zahtijeva dobru količinu "geeka" koja većini ljudi nedostaje i do koje im nije stalo.

Nemojte me pogrešno shvatiti, volim Python, to je zapravo moj omiljeni jezik za razliku od R-a, pravi programski jezik. Ipak, što se tiče čiste analize podataka, ovisim o R-u, koji je do sada najspecijaliziranije i najrazvijenije rješenje do danas. Python koristim kad trebam kombinirati analizu podataka sa softverskim inženjeringom, npr. stvoriti alat koji će izvršiti automatizaciju metoda koje sam prvo programirao u prljavoj R skripti. U mnogim prilikama koristim rpy2 da pozovem R iz Pythona, jer su u velikoj većini slučajeva R paketi puno bolji (ili uopće ne postoje u Pythonu). Na ovaj način pokušavam dobiti najbolje od oba svijeta.

I dalje koristim neki Matlab za čisti razvoj algoritama jer volim njegovu sintaksu i brzinu u matematičkom stilu.

#24
+6
Gene Burinsky
2016-04-06 07:38:23 UTC
view on stackexchange narkive permalink

Vjerujem da je Python vrhunski radni stol u mom području. Puno radim na struganju, premještanju podataka, radu s velikim podacima, analizi mreže, Bayesovom modeliranju i simulacijama. Sve ove stvari obično trebaju brzinu i fleksibilnost, pa smatram da Python u tim slučajevima radi bolje od R-a. Evo nekoliko stvari o Pythonu koje mi se sviđaju (neke su gore spomenute, druge točke nisu):

-Sintaksa čišćeg; čitljiviji kod. Vjerujem da je Python moderniji i sintaktički dosljedniji jezik.

-Python ima Notebook, Ipython i druge nevjerojatne alate za dijeljenje koda, suradnju i objavljivanje.

-iPythonova bilježnica omogućuje upotrebu R u nečijem Python kodu, tako da je uvijek moguće vratiti se na R.

- Znatno brže bez pribjegavanja C. Upotreba Cythona, NUMBA, i druge metode integracije C vaš će kôd postići brzinama usporedivim s čistim C. To se, koliko mi je poznato, ne može postići u R.

-Pandas, Numpy i Scipy ispušuju standardni R vode. Da, postoji nekoliko stvari koje R može učiniti u jednom retku, ali uzima Pande 3 ili 4. Općenito, međutim, Pande mogu raditi s većim skupovima podataka, jednostavnije je za upotrebu i pruža nevjerojatnu fleksibilnost u pogledu integracije s drugim Pythonom paketi i metode.

-Python je stabilniji. Pokušajte učitati 2gig skup podataka u RStudio.

-Jedan uredan paket koji se ne čini gore spomenutim je PyMC3 - sjajni opći paket za većinu vašeg Bayesovog modeliranja.

- Neki, gore spominju ggplot2 i grub o njegovom odsustvu iz Piton. Ako ste ikada koristili Matlabove grafičke funkcije i / ili koristili matplotlib u Pythonu, tada ćete znati da su potonje opcije općenito puno sposobnije od ggplot2.

Međutim, možda je R lakše naučiti i često ga koristim u slučajevima kada još nisam previše upoznat s postupcima modeliranja. U tom je slučaju dubina R-ovih gotovih statističkih knjižnica nenadmašna. U idealnom slučaju, obje bih poznavao dovoljno dobro da bih ih mogao koristiti po potrebi.

#25
+5
Yu-Yang
2015-03-18 21:54:20 UTC
view on stackexchange narkive permalink

Za one koji moraju raditi pod sustavom Windows, Anaconda ( https://store.continuum.io/cshop/anaconda/) zaista puno pomaže. Instalacija paketa pod Windowsom bila je glavobolja. Instalirana Anaconda, možete postaviti razvojno okruženje spremno za upotrebu s jednom linijom.

Na primjer, s

  conda create -n stats_env python pip numpy scipy matplotlib pandas  

svi će ti paketi biti automatski dohvaćeni i instalirani.

#26
  0
Adrian Keister
2020-04-01 01:58:47 UTC
view on stackexchange narkive permalink

Mislio sam dodati noviji odgovor od onih koji su dati. Ja sam Python momak, neprestano i evo zašto:

  1. Python je lako najintuitivnija sintaksa bilo kojeg programskog jezika koji sam ikada koristio, osim moguće LabVIEW. Ne mogu izbrojati koliko sam puta jednostavno isprobao 20-30 redaka koda u Pythonu, a oni su uspjeli . To je sigurno više nego što se može reći za bilo koji drugi jezik, čak i LabVIEW. To omogućuje izuzetno brzo vrijeme razvoja.

  2. Python je izvedben. To je spomenuto u drugim odgovorima, ali to se ponavlja. Smatram da Python pouzdano otvara velike skupove podataka.

  3. Paketi u Pythonu brzo sustižu R-ove pakete. Svakako, upotreba Pythona znatno je nadmašila upotrebu R u posljednjih nekoliko godina, iako je tehnički taj argument, naravno, populum.

  4. Sve više i više, smatram da su čitljivost među najvažnijim kvalitetama koje dobar kôd može posjedovati, a Python je najčitaniji jezik ikad (pod pretpostavkom da slijedite razumno dobre prakse kodiranja, naravno). Neki od prethodnih odgovora pokušali su tvrditi da je R čitljiviji, ali primjeri koje su pokazali dokazuju mi ​​suprotno: Python je čitljiviji od R, a također je i brži za učenje. Naučio sam osnovni Python u jednom tjednu!

  5. Lambda Labs Stack noviji je alat od Anaconde, i po mom mišljenju to jednokratno poboljšava. Loša strana: možete ga instalirati samo u Ubuntu 16.04, 18.04 i 20.04, a Ubuntu derivati ​​u tim verzijama. Naopako: dobivate sve standardne GPU-ubrzane pakete kojima se upravlja, sve do hardverskih upravljačkih programa. Anaconda to ne radi. Sklop Lambda Labs održava kompatibilne brojeve verzija sve od verzije Theano ili Keras do verzije upravljačkog programa NVIDIA GPU. Kao što ste vjerojatno svjesni, ovo nije trivijalni zadatak. Što se tiče strojnog učenja, Python je kralj, ruku na srce. A ubrzanje GPU-a nešto je bez čega većina stručnjaka za obradu podataka ne mogu.

  6. Python sada ima izuzetno dobro promišljeni IDE: PyCharm. Po mom mišljenju, ovo bi trebali koristiti ozbiljni programeri Pythona - definitivno NE Jupyter prijenosna računala. Iako mnogi ljudi koriste Visual Studio Code, smatram da je PyCharm najbolji IDE za Python. Dobivate sve što biste praktički željeli - IPython, terminal, napredne alate za uklanjanje pogrešaka, uključujući kalkulator u memoriji i integraciju kontrole izvornog koda.

  7. Mnogi ljudi kažu da Pythonovi statistički paketi nisu cjeloviti kao R-ovi. Nema sumnje da je to još uvijek donekle točno (iako vidi gore 3). S druge strane, meni, kao prvo, nisu bili potrebni oni nevjerojatno napredni statistički paketi. Radije čekam naprednu statističku analizu dok potpuno ne razumijem poslovno pitanje koje se postavlja. Često je rješenje problema relativno jednostavan algoritam za izračunavanje metrike, u kojem slučaju Python izrađuje vrhunski alat za izračunavanje mjernih podataka.

  8. Mnogi ljudi vole nagovarati R-ovu sposobnost da čini moćne stvari u samo jednom retku koda. Po mom mišljenju, to nije užasno dobar argument. Je li to jedan redak koda čitljiv? Tipični kod se napiše jednom i pročita deset puta! Čitljivost se računa, kako kaže Zen of Python. Radije bih imao nekoliko redaka čitljivog Python koda nego jednu tajnu liniju R koda (ne da su to jedini izbor, naravno; samo želim naglasiti da manje redaka koda ne odgovara većoj čitljivosti).

  9. Usput, jednostavno ne mogu odoljeti da ne dam komentar o SAS-u, iako je pomalo odbačen od teme. Kao što sam rekao u prethodnoj točki, osnovni Python naučio sam u jednom tjednu. Tada sam probao SAS. Prošao sam kroz oko tri poglavlja knjige o SAS-u od 11 poglavlja, a trebalo mi je dva mjeseca! Štoviše, kad god sam probao nešto, to nikada nikad nije uspjelo prvi put. JAČNO bih vas molio da napustite SAS što prije možete. Ima izuzetno zamršenu sintaksu, izvanredno je neumoljiv, itd. Jedina dobra stvar koja se o njoj može reći jest da su njene statističke mogućnosti potpune kao i R-ove. Whoopty do.

Dakle, eto vam. Python do kraja!



Ova pitanja su automatski prevedena s engleskog jezika.Izvorni sadržaj dostupan je na stackexchange-u, što zahvaljujemo na cc by-sa 2.0 licenci pod kojom se distribuira.
Loading...