Küsimus:
Python kui statistika tööpink
Fabian Fagerholm
2010-08-12 15:46:45 UTC
view on stackexchange narkive permalink

Paljud inimesed kasutavad oma statistiliste vajaduste jaoks sellist peamist tööriista nagu Excel või mõni muu arvutustabel, SPSS, Stata või R. Nad võivad väga erivajaduste korral pöörduda mõne konkreetse paketi poole, kuid paljusid asju saab teha lihtsa arvutustabeli või üldise statistikapaketi või statistika programmeerimiskeskkonnaga.

Mulle on Python alati programmeerimisena meeldinud keeles ja lihtsate vajaduste jaoks on lihtne kirjutada lühike programm, mis arvutab välja, mida mul vaja on. Matplotlib lubab mul seda kavandada.

Kas keegi on näiteks R-ilt täielikult Pythonile üle läinud? R-l (või mõnel muul statistikapaketil) on palju statistikale omaseid funktsioone ja sellel on andmestruktuurid, mis võimaldavad teil mõelda statistikale, mida soovite teha, ja vähem oma andmete sisemisele kujutamisele. Pythoni (või mõne muu dünaamilise keele) eeliseks on see, et ta lubab mul programmeerida tuttavas kõrgetasemelises keeles ja see võimaldab mul programmiliselt suhelda reaalsete süsteemidega, milles andmed asuvad või millest saan mõõta. Kuid ma pole leidnud ühtegi Pythoni paketti, mis võimaldaks mul väljendada asju "statistilise terminoloogiaga" - alates lihtsast kirjeldavast statistikast kuni keerukamate mitmemõõtmeliste meetoditeni.

Mida saaksite soovitada, kui sooviksin kasutada "statistiline töölaud" R-de, SPSS-i jms asendamiseks ?

Mida ma teie kogemuste põhjal võidaksin ja kaotaksin?

FYI, on käimas uus pythoni statistika subreddit: http://www.reddit.com/r/pystats
Kui peate käsureal asju ümber tõstma, on pythonpy (https://github.com/Russell91/pythonpy) kena tööriist.
26 vastused:
#1
+313
ars
2010-08-13 10:30:09 UTC
view on stackexchange narkive permalink

R / CRANis saadaval olevate statistikapakettide rohkust on raske ignoreerida. See tähendab, et veedan palju aega Pythoni maal ega hoiaks kedagi kunagi tagasi nii lõbusalt kui mina. :) Siin on mõned teegid / lingid, mis võivad statistikatöö jaoks kasulikud olla.

  • NumPy / Scipy Ilmselt teate neist juba. Kuid lubage mul välja tuua kokaraamat, kust saate lugeda paljude juba saadaolevate statistikarajatiste kohta, ja näidiste loendist, mis on suurepärane viide funktsioonidele (sh andmetöötlus ja muud toimingud) . Teine käepärane viide on John Cooki Levitused Scipys.

  • pandad See on tõeliselt kena raamatukogu statistiliste andmetega töötamiseks - tabeliandmed, aegridad, paneeli andmed. Sisaldab palju sisseehitatud funktsioone andmete kokkuvõtete, rühmitamise / liitmise, pööramise jaoks. Samuti on statistika / ökonomeetria teek.

  • larry Sildistatud massiiv, mis mängib NumPyga kenasti. Pakub statistilisi funktsioone, mida NumPys pole ja mis on kasulikud andmetega manipuleerimiseks.

  • python-statlib Üsna hiljutine tegevus, mis ühendas hulga hajutatud statistikateeke. Kasulik põhi- ja kirjeldava statistika jaoks, kui te ei kasuta NumPyt ega pandasid.

  • statistilised mudelid Statistiline modelleerimine: muu hulgas ka lineaarsed mudelid, GLM-id.

  • scikits Statistilised ja teaduslikud arvutipaketid - eriti silumine, optimeerimine ja masinõpe.

  • PyMC teie Bayesi / MCMC / hierarhiliste modelleerimisvajaduste jaoks. Eriti soovitatav.

  • PyMix segu mudelid.

  • Biopython Kasulik oma bioloogiliste andmete laadimiseks Pythonisse ja pakub analüüsimiseks mõningaid algseid statistilisi / masinõppevahendeid.

Kui probleemiks on kiirus, kaaluge Theano - seda kasutavad edukalt sügavalt õppivad inimesed.

Seal on palju muud kraami, kuid see on minu jaoks kõige kasulikum teie mainitud viisil.

Kõik vastused olid nii kasulikud kui ka kasulikud ning vääriksid kõigi aktsepteerimist. See teeb aga küsimusele vastamisel väga head tööd: Pythoni abil peate kokku panema palju tükke, et teha seda, mida soovite. Need näpunäited on kahtlemata väga kasulikud kõigile, kes soovivad statistikat / modelleerimist / jne. Pythoniga. Aitäh kõigile!
-1
@StéphaneLaurent Paigaldan tavaliselt erinevad tükid ise, kuid kiireks alustamiseks / installimiseks võiksite kaaluda järgmist: [pythonxy] (http://code.google.com/p/pythonxy/).
See skript installib paljusid ülalnimetatud teeke: http://fonnesbeck.github.com/ScipySuperpack/
Pythonxy on tore, kuid see võib häirida, kui soovite teha suuri arvutusi, kuna see on saadaval ainult 32-bitise jaoks. Siin on mitteametlikud kahendfailid paljude pythoni pakettide installimiseks. Need võivad olla üsna kasulikud, kui otsustate töötada akende all. http://www.lfd.uci.edu/~gohlke/pythonlibs/ @StéphaneLaurent
Keegi peab looma Pythoni-laadse GUI-rakenduse jaoks Kickstarteri, et teha statistikat kõigi nende sisseehitatud tööriistadega. Kui pean veel minutit kasutama Statat, siis võin lihtsalt kellegi tappa ...
Kas ["rpy2"] (http://rpy2.bitbucket.org/) on kusagil seal peidus?See on hädavajalik, kui soovite käivitada R pythonist
Jah .. R-i saab käivitada pythonist, suhteliselt lihtsalt, loomupäraselt või teiste raamatukogude kaudu.Tundub, et R-i peamine argument on see, et enamik funktsioone on tingimata juba R-is pakendatud või CRAN-is saadaval.Pythonis on ka Spyder, Anaconda, Enough Python, Jupyter sülearvutid ... ja tänapäeval ootaksin Pythoni populaarsusega, et enamik R-s saadaolevaid funktsioone on ilmselt juba Pythonis saadaval. Eelmised vastused tunduvad olevat üsna pikka aega tagasi.Ei tea, kas R on siiski Pythonist parem .. kas see on rohkem võrdsel pinnal?
Kas olete proovinud Pyonide OO programmeerimisvõimalusi ka neile, kes soovitavad tungivalt R-d?Kas ei kasutata Pythonis OO võimeid, andes talle põhimõtteliselt sarnased võimalused nagu R?
Kuidas on larry võrreldav [xarry] -ga (http://xarray.pydata.org/en/stable/why-xarray.html)?
Theano on üsna vananenud.Enamik inimesi kasutab Tensorflow'i praegu.
#2
+144
gappy
2011-10-13 21:41:40 UTC
view on stackexchange narkive permalink

Numbrilise platvormi ja MATLAB-i asendajana saavutas Python küpsuse vähemalt 2–3 aastat tagasi ja on nüüd paljudes aspektides palju parem kui MATLAB. Proovisin umbes sel ajal R-lt Pythonile üle minna ja ebaõnnestusin. R-pakette, mida ma igapäevaselt kasutan, on liiga palju, millel pole Pythoni ekvivalenti. Ggplot2 puudumine on showstopperiks piisav, kuid neid on palju rohkem. Lisaks sellele on R-il andmete analüüsimiseks parem süntaks. Vaadake järgmist põhinäidet:

Python :

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

R :

  tulemused <- lm (y ~ x1 + x2 + x3, data = A)  

Mida peate ilmekamaks? R-s saate mõelda muutujatega ja hõlpsalt laiendada mudelit, näiteks

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

Võrreldes R-ga on Python mudeli koostamise jaoks madalama taseme keel.

Kui mul oleks täpsemate statistiliste funktsioonide jaoks vähem nõudeid ja ma juba kodeeriksin Pythoni suuremal projekti puhul peaksin Pythoni heaks kandidaadiks. Kaaluksin seda ka siis, kui vaja on paljaste kontidega lähenemist kas kiirusepiirangute tõttu või seetõttu, et R-paketid ei paku serva.

Neile, kes teevad suhteliselt arenenud statistikat praegu , vastus on no-brainer ja on ei . Tegelikult usun, et Python piirab teie viisi andmete analüüsi osas. 100 olulise R-paketi moodulite asenduste tootmine võtab paar aastat ja palju inimeaastaseid jõupingutusi ning isegi siis tunneb Python end keelena, millele andmete analüüsivõimalused on kinnitatud. Kuna R on juba hõivanud suurima rakendatud statistikute suhtelise osa mitmes valdkonnas, ei näe ma seda niipea. Seda öeldes on see vaba riik ja ma tean inimesi, kes teevad APL-is ja C-s statistikat.

+1 Mulle lihtsalt meeldib see vastus, kuna rõhute R-le kui statistikakeelele valemite jms abil andmete töötamiseks. Nagu öeldud, ootan pandade (koos statistiliste mudelitega) suurt positiivset mõju Pythoni kogukonnas.
Pythoni kogukonnas tegeleb patsy teie kirjeldatud "valemi" vajadusega, parandades kohati R-i pakkumisi: http: //patsy.readthedocs.org/en/v0.1.0/index.html Mis on Pythonis tore on see, et kõiki neid aspekte käsitletakse ortogonaalselt. Pandad hoolitsevad ajajärjestuste ja andmekraami / seeria esitamise eest. patsy valemite eest. numpy massiivi kujutamiseks ja vektoriseerimiseks. statsmodels murrab statistika algosid. scipy optimeerimiseks ja hunnik muud kraami. Tulemuseks on puhtamad liidesed. R on sellega võrreldes küpsem, kuid on juuksepall. ../ ..
../ .. Ma arvan, et pikemas perspektiivis liiguvad jõud Pythoni üha suurema integreerimise suunas ja leiate, et sellest saab R-le üsna konkurent. Andmete puhastamine R-is on Pythoniga võrreldes selline PIA ja see pole kunagi töö tühine osa. - [blais] (http://stats.stackexchange.com/users/13247/blais)
Eelistaksin pythoni teksti kaevandamiseks ja muuks intensiivseks kodeerimiseks, graafika ja statistiliste eesmärkide jaoks ausalt öeldes ei näe ma end R-lt ühele teisele platvormile üleminekut. Kuid pythonis kodeerimine on lõbus ja täieõigusliku programmeerimiskeelena Ei näe mingit kahju selle õppimisel koos R ja Matlabiga.
värskendusena: statsmodels'i dokumentatsiooni esimene näide on nüüd `results = smf.ols ('Lottery ~ Literacy + np.log (Pop1831)', data = dat) .fit ()". Statsmodels on katvuse poolest endiselt kaugel teistest statistikapakettidest, näiteks R, kuid Pythonis saate teha üha rohkem asju, enne kui peate mõne muu keele või statistikapaketi haarama. (GEE ja Mixed ilmuvad järgmises versioonis.)
"Pythonis on tore see, et kõiki neid aspekte käsitletakse ortogonaalselt ...". Ma ei nõustu mitmes osas. Numpy, scipy ja statistilised mudelid on märkimisväärselt kattuvad. R disain on palju modulaarsem ja ökonoomsem. Pealegi, enamikus mitte kõigis andmepõhistes keeltes sisalduvates kontseptuaalsetes uuendustes (mitte ainult valemites, vaid ka andmeraamides, graafika grammatikas, caret kui medelite grammatikas, knitris ja veel arenevas dplyri andmete grammatikas) pärinevad R.-st. Pythoni kogukond näib alati olevat samm taga ja keskendunud liiga jõudlusele.
@gappy: on sellepärast, et python on üldine programmeerimiskeel ja palju muid jõudlust nõudvaid kasutusviise.Pole üllatav, et see filtreeritakse pythoni statistika kogukonda.Pealegi on tänapäeval nii palju vaja suurandmete analüüsi (isegi kui see tähendab sülearvuti 2Gb andmekogumeid), et on mõistetav, et statistikakogukond soovib keskenduda tõhususele.
#3
+95
Josh Hemann
2010-08-25 10:19:47 UTC
view on stackexchange narkive permalink

Kõigepealt lubage mul öelda, et nõustun John D Cooki vastusega: Python ei ole domeenispetsiifiline keel, nagu R, ja seetõttu saate sellega tee peal palju muud teha. Muidugi tähendab R DSL-iga seda, et JASA-s avaldatud uusimad algoritmid on peaaegu kindlasti R-s. Kui teete peamiselt ad hoc tööd ja soovite katsetada uusimat lasso regressioonitehnikat, ütleme, et R-i on raske ületada. Kui teete rohkem tooteanalüütilist tööd, integreerite olemasoleva tarkvara ja keskkonnaga ning olete mures kiiruse, laiendatavuse ja hooldatavuse pärast, teenib Python teid palju paremini.

Teiseks andis ars hea vastuse heade linkidega. Siin on veel mõned paketid, mida pean Pythoni analüütilise töö jaoks hädavajalikuks:

  • matplotlib ilusa, väljaande kvaliteediga graafika jaoks.
  • IPython täiustatud ja interaktiivse Pythoni konsooli jaoks. Oluline on see, et IPython pakub võimsa raamistiku interaktiivseks, paralleelseks arvutamiseks Pythonis.
  • Cython Pythonis C-laienduste hõlpsaks kirjutamiseks. See pakett võimaldab teil võtta osa arvutuslikult intensiivsest Pythoni koodist ja teisendada see hõlpsalt C-laiendiks. Seejärel saate C-laiendust laadida nagu iga teist Pythoni moodulit, kuid kood töötab väga kiiresti, kuna see on C-s.
  • PyIMSL Studio sadade kogu jaoks. matemaatiliste ja statistiliste algoritmide kohta, mis on põhjalikult dokumenteeritud ja toetatud. Peaaegu sama API abil saate helistada täpselt samadele algoritmidele Pythonist ja C-st ning saate samad tulemused. Täielik avalikustamine: töötan selle toote kallal, kuid kasutan seda ka palju.
  • xlrd Exceli failide hõlpsaks lugemiseks.

Kui soovite MATLAB-tüüpi interaktiivsemat IDE / konsooli, vaadake Spyder või PyDev pistikprogramm Eclipse jaoks.

Veel üks suurepärane vastus! PyIMSL Studio kõlab huvitavalt, liiga halb, et see pole avatud lähtekoodiga. NumPy / SciPy-ga on siiski mõningane kattuvus. Igal juhul arvan, et need olid head näpunäited kõigile, kes soovivad oma Pythoni statistika tööpinki kokku panna!
See on tasuta nagu õlle puhul (mitteäriliseks kasutamiseks), kuid paraku mitte tasuta nagu kõnes.
R ei ole DSL selle mõiste tavapärases tähenduses. See on täielik Turingi täielik programmeerimiskeel.
@hadley: Võib-olla kasutan "DSL-i" liiga kõnekeeles, kuid selleks, et see oleks väärt, on DSL-ide Wikipedia lehel S + ja R selgesõnaliselt loetletud DSL-ide näidetena ja Python üldise keelena. Vaadake http://et.wikipedia.org/wiki/Domain-specific_language. Samamoodi on SAS Turing-täielik (ainult juhul, kui kasutatakse IML-i makrokomponenti), kuid vaevalt nimetaksin seda praktilises mõttes terviklikuks keeleks. Leian, et R on minu töös hindamatu, kuid püüan kodeerida nii palju kui võimalik üldotstarbeliste keelte abil, selle asemel, et proovida kõike teha R-s (või selle jaoks Excelis).
Ma arvan, et on ebaõiglane lisada R ja S Vikipeedias nende teiste keeltega samasse nimekirja - R-s pole midagi sellist, mida saaksite teha pythonis. Muidugi on palju asju, mis sobivad paremini mõne teise programmeerimiskeelega, kuid sama kehtib ka Pythoni kohta.
Ma ei näe, et neid mainitakse WL-i artiklis DSL-i kohta. Õigem statistiline näide näib olevat vead / jagid. Lisan need.
Ahh, hadley eemaldas R ja S + Vikipeedia lehelt samal päeval, kui me kommentaare vahetasime, 13. oktoobril 2011. Niisiis kuulen sageli oma alusjõuna mantrat "R töötasid välja statistikud ja nende jaoks". Ilmselt on nüüd ka see üldotstarbeline keel ...
Noh, kas mul võib olla R-ga mitmekeermeline kood?Võrgu asünkroonne I / O?Uskuge mind, need kasutusalad tekivad tegelikult teaduslikus arvutustöös.R on minu arvates DSL.Statistikas on see tugev ja enamikus muudes asjades halb.
@hadley: Peaksite tõenäoliselt minema ka sellelt lehelt shelliskriptid, PostScript, HTML + CSS3, [MediaWiki mallid ja muu] (http://beza1e1.tuxen.de/articles/accidentally_turing_complete.html).
Ma leian, et kui vana ei tee seda tööd, siis mõnikord teeb uus.Ja pole nii, et põhialuseid ei küpsetata ka R-sse.
@hadley tsiteerides Wikipediat: * "Domeenipõhine keel (DSL) on konkreetsele rakendusdomeenile spetsialiseerunud arvutikeel. See on erinevalt üldotstarbelisest keelest (GPL), mis on laialt kasutatav kõikides domeenides ja millel puuduvad erifunktsioonidkonkreetse domeeni jaoks. "* Raske põhjendada, et R ja S + ei kuulu selle määratluse reguleerimisalasse.
Mulle meeldib python ja ma kasutan seda, kuid kui R on DSL ja python seda pole, siis miks ma ikka veel täna vaeva näen, et leida hea pakett, mis sobib lihtsalt mitme vastusega OLS-iga ja saab korralikku statistikat.See peaks saama tiibu libistada kõikjal.On mõned asjad, mis on küpsenud pythonis ja on muud, mis on küpsenud R.-s. Täna arvan, et see on seotud asjadega eesmärgi saavutamiseks, kuna R ja python on lihtsalt tööriist mõne töö saavutamiseks.
#4
+61
csgillespie
2010-08-12 15:59:17 UTC
view on stackexchange narkive permalink

Ma arvan, et pole ühtegi argumenti selle kohta, et statistiliste pakettide valik kraanis ja biokonduktoris ületaks palju muudest keeltest pakutavat, kuid see pole ainus asi, mida arvestada.

Uurimistöös kasutan R-d, kui saan, kuid mõnikord on R lihtsalt liiga aeglane. Näiteks suur MCMC jooks.

Hiljuti ühendasin selle probleemi lahendamiseks pythoni ja C. Lühikokkuvõte: mahukas ~ 60 parameetriga stohhastiline populatsioonimudel ja MCMC abil umbes 150 varjatud oleku järeldamine.

  1. Loe sisse pythoni andmed
  2. Ehita pythoni C-andmestruktuurid ctypes abil.
  3. pythoni kasutamine Lingi for jaoks helistage funktsioonidele C, mis värskendasid parameetreid ja arvutasid tõenäosuse.

Kiire arvutus näitas, et programm kulutas C-funktsioonidele 95%. Kuid ma ei pidanud andmete lugemiseks ega C-andmestruktuuride loomiseks valulikku C-koodi kirjutama.


Ma tean, et on olemas ka rpy, kus python saab helistada R-le funktsioone. See võib olla kasulik, kuid kui te statistikat lihtsalt teete, siis kasutaksin R.

Rcpp häbitu pistiku sisestamine :)
uudishimulik, kas olete proovinud PyMC-d ja kuidas võrreldakse jõudlust (võrreldes Python / C-ga) teie mudelite puhul.
@ars: Ülaltoodud juhul hõlmas iga iteratsioon (10 ^ 8 iteratsioonist) 5 ODE lahendamist. Seda tuli tõesti teha C.-s. Ülejäänud kood oli üsna lihtne ja seega oli C-kood otsekohene. Minu rakendus oli mittestandardne ja seega ei olnud PyMC rakendatav - ka ~ 2 aastat tagasi.
#5
+40
Jeromy Anglim
2010-08-12 15:58:37 UTC
view on stackexchange narkive permalink

Järgmised StackOverflow-arutelud võivad olla kasulikud

Kõik need arutelud on eemaldatud :-(. Võib-olla tuleks ka see vastus eemaldada?
See on kurb. Värskendasin linke, et viidata tagasiteel tehtud masinakoopiatele.
#6
+36
Gael Varoquaux
2011-02-05 16:49:46 UTC
view on stackexchange narkive permalink

Ma pole näinud ülaltoodud vastustes sõnaselgelt mainitud scikit-learn -i. See on Pythoni pakett masinõppeks. See on üsna noor, kuid kasvab ülikiiresti (lahtiütlus: olen scikit-learn arendaja). Selle eesmärk on pakkuda standardset masinõppe algoritmivahendeid ühtses liideses, keskendudes kiirusele ja kasutatavusele. Minu teada ei leia Matlabist midagi sarnast. Selle tugevad küljed on:

Matlab on suurepärane tööriist, kuid minu enda töös annab scipy + scikit-learn mulle Matlabis eelise, kuna Python teeb oma vaatega mäluga paremat tööd mehhanism (ja mul on suured andmed) ja kuna scikit-learn võimaldab mul erinevaid lähenemisviise väga lihtsalt võrrelda.

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

Pythoni kolimise üks eelis on võimalus teha rohkem tööd ühes keeles. Python on mõistlik valik numbritega kruntimiseks, veebisaitide kirjutamiseks, administraatoriskriptide tegemiseks jne. Nii et kui teete Pythonis statistikat, ei peaks te muude programmeerimisülesannete täitmiseks keelt vahetama.

Uuenda: 26. jaanuaril 2011 teatas Microsoft Research uuest Pythoni-põhisest keskkonnast andmete analüüsimiseks Sho. Mul pole veel olnud võimalust seda proovida, kuid see kõlab huvitava võimalusena, kui soovite käivitada Pythoni ja suhelda ka .NET-i teekidega.

Olen R-is teinud palju numbreid, ühte veebisaiti ja vähe halduskripte ning need töötavad üsna kenasti.
#8
+28
Griffith Rees
2011-09-13 21:05:45 UTC
view on stackexchange narkive permalink

Võib-olla on see vastus petlik, kuid tundub imelik, et keegi pole maininud projekti rpy, mis pakub liidese R ja Pythoni vahel. Suuremale osale R-i funktsioonidest saate pütoonilise api, säilitades (ma väidaksin, et kenam) süntaks, andmetöötlus ja mõnel juhul ka Pythoni kiirus. On ebatõenäoline, et Pythonis on kunagi nii palju veritseva statistika statistikatööriistu kui R-s, lihtsalt seetõttu, et R on dsl ja statistikakogukond on rohkem investeerinud R-i kui võimalik, et mõni muu keel.

Ma näen seda analoogiliselt ORM-i kasutamine SQL-i eeliste ärakasutamiseks, lubades Pythonil olla Python ja SQL-il SQL.

Muude spetsiaalselt andmestruktuuride jaoks kasulike pakettide hulka kuuluvad:

  • pydataframe kordab data.frame'i ja seda saab kasutada rpy-ga. Võimaldab kasutada R-tüüpi filtreerimist ja toiminguid.
  • pyTables Kasutab all olevat kiiret andmetüüpi hdf5, mis on olnud kasutusel juba ammu
  • h5py Samuti hdf5, kuid mõeldud spetsiaalselt numpyga koostoimimiseks
  • pandad Teine projekt, mis haldab data.frame'i, näiteks andmeid, töötab rpy, pyTable ja numpy
Olen alati leidnud, et rpy on lohakas töötada. See nõuab suuri koodiridu näiteks mõne lihtsa funktsiooniga.
Võib-olla saab IPythoni rmagici laiendus (nagu @CarlSmith osutas) rpy2-ga töötamise lihtsamaks muuta? Vaadake 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

Pole tegelikult vaja Pythoni jaoks R-st loobuda. Kui kasutate IPythoni täis virnaga, on teil laiendid R, Octave ja Cython, nii et saate neid keeli hõlpsalt ja puhtalt kasutada oma IPythoni märkmikutes. Samuti toetate väärtuste edastamist nende ja Pythoni nimeruumi vahel. Andmeid saate edastada graafikutena, kasutades matplotlibi ja korralikult renderdatud matemaatilisi väljendeid. Seal on palju muid funktsioone ja saate seda kõike teha oma brauseris.

IPython on kaugele jõudnud :)

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

Tahaksin öelda, et kellegi seisukohast, kes minu statistikatöös tugineb suuresti lineaarsetele mudelitele ja armastab Pythoni oma töö muude aspektide suhtes, olen Pythonis väga pettunud kui platvorm, kus saab teha kõike muud kui üsna põhistatistikat.

Ma leian, et R-il on statistikakogukonnalt palju parem tugi, lineaarsete mudelite palju parem rakendamine ja ausalt öeldes asjade statistika poolelt, isegi suurepärase statistika korral levitamised nagu Enthought, tunneb Python end natuke metsiku lääne moodi.

Ja kui te ei tööta üksinda, on tõenäosus, et teil on koostööpartnereid, kes kasutavad Pythoni statistikaks, praegusel hetkel üsna vähe.

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

Olen biostatist, mis on sisuliselt R-pood (~ 80 inimest kasutab R-i peamise tööriistana). Siiski veedan umbes 3/4 ajast Pythonis töötades. Ma seostan seda peamiselt asjaoluga, et minu töö hõlmab Bayesi ja masinõppe lähenemist statistilisele modelleerimisele. Python tabab jõudluse / tootlikkuse magusat kohta palju lähemal kui R, vähemalt korduvate või simulatsioonipõhiste statistiliste meetodite puhul. Kui ma sooritaksin ANOVAS-e, regressioone ja statistilisi teste, oleksin kindel, et kasutaksin peamiselt R-d. Enamik vajalikust pole aga konserveeritud R-paketina saadaval.

+1, et eristada statistikavaldkonda, milles te töötate. On statistilise arvutamise valdkondi (nt struktureerimata tekstianalüüs ja arvutinägemine), mille jaoks on Pythonis palju funktsionaalsust, ja näib, et Python on nendes alamdomeenides lingua franca. Ma arvan, et Pythoni kogukond peab järele jõudma, parandades klassikalise statistilise modelleerimise andmete struktuure ja semantikat, milles R-i disain on nii hea. Scikits.statsmodels arendajad teevad selles valdkonnas palju edusamme: http://scikits.appspot.com/statsmodels
#12
+19
Adam
2011-10-13 00:40:10 UTC
view on stackexchange narkive permalink

Mida otsite, nimetatakse Sage: http://www.sagemath.org/

See on suurepärane veebiliides Pythoni hästi ehitatud kombinatsiooniks matemaatika tööriistad.

Sage'i hiilgav osa on see, et see on sisuliselt _ paljude suurepäraste tasuta matemaatika, statistika, andmete analüüsi jms tööriistade liit __. See on midagi enamat kui lihtsalt Python; tal on juurdepääs R-le, maksimumidele, GLPK-le, GSL-ile ja muule.
#13
+18
pythOnometrist
2013-04-06 01:59:03 UTC
view on stackexchange narkive permalink

Rpy2 - mängige R-ga, püsige Pythonis ...

Lisateave vastavalt Gungi soovile:

Rpy2 dokumentatsiooni leiate aadressilt http: //rpy.sourceforge .net / rpy2 / doc-dev / html / Introduction.html

Dokumentatsioonist lähtuvalt rpy2 kõrgetasemeline liides on loodud selleks, et hõlbustada R Pythoni programmeerijate poolt. R-objekte eksponeeritakse Pythoni rakendatud klasside eksemplaridena, kusjuures R-funktsioonid on paljudel juhtudel seotud nende objektidega. See jaotis sisaldab ka sissejuhatust graafikaga R-ga: võrestiku (võre) graafikud ja ggplot2-s rakendatud graafika grammatika võimaldavad teha keerulisi ja informatiivseid jooniseid, kus on vähe kirjutatud koodi, samas kui aluseks olev võrgugraafika võimaldab kõiki võimalikke kohandusi.

> R-s ja saate r-objektid järeltöötluse jaoks tagasi. Ma kasutan ökonomeetriat ja pythonil pole lihtsalt R veritsevate statistide tööriistu. Ja R ei ole tõenäoliselt kunagi nii paindlik kui python. Selleks on vaja, et te R-st aru saaksite. Õnneks on sellel tore arendajate kogukond.

Rpy2 ise on hästi toetatud ja seda toetav härrasmees käib SO foorumites. Windowsi installimine võib olla väike valu - 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 võib aidata.

Tere tulemast saidile @pythOnometrist. Kahtlustan, et see on kasulik panus. Kas oleksite nõus Rpy2-st lühikese kokkuvõtte andma, et lugejad saaksid otsustada, kas nad otsivad seda?
#14
+17
Turukawa
2010-08-27 15:10:36 UTC
view on stackexchange narkive permalink

Kasutan Pythoni statistiliseks analüüsiks ja prognoosimiseks. Nagu teised eespool mainisid, on Numpy ja Matplotlib head tööhobused. Samuti kasutan ReportLabi PDF-väljundi loomiseks.

Praegu vaatan nii Resolverit kui ka Pyspreadi, mis on Exceli-laadsed arvutustabelirakendused, mis põhinevad Pythonil. Resolver on kommertstoode, kuid Pyspread on endiselt avatud lähtekoodiga. (Vabandust, ma piirdun ainult ühe lingiga)

Jällegi mõned huvitavad tööriistad. Teadsin Numpyst, Matplotlibist ja ReportLabist, kuid Pyspread tundub huvitav mõte. Vähemalt tahaksin sisestada Pythoni avaldised arvutustabeli lahtritesse. Kuigi see ei lahenda kõiki võimalikke probleeme, võib see olla hea prototüüpide loomiseks ja andmetega mängimiseks.
+1 Wow pythoni arvutustabelid! Polnud neist veel kuulnud. Ma soovisin alati, et OpenOffice / LibreOffice omaks ja integreeriks Pythoni skriptimise oma arvutustabeli tarkvarasse
#15
+15
kgarten
2011-02-06 00:31:42 UTC
view on stackexchange narkive permalink

siiani suurepärane ülevaade. Ma kasutan matabeli asendajana pythoni (täpsemalt scipy + matplotlib), kuna olen töötanud 3 aastat ülikoolis. Mõnikord lähen ikka tagasi, sest olen tuttav konkreetsete raamatukogudega nt. pakett matlab wavelet on puhtalt vinge.

Mulle meeldib http://enthought.com/ pythoni levitamine. See on kommertslik, kuid tasuta akadeemilistel eesmärkidel ja minu teada täiesti avatud lähtekoodiga. Kuna töötan paljude õpilastega, oli enne enthought'i kasutamist arvatavasti tülikas installida numpy, scipy, ipython jne. Enthought pakub Windowsi, Linuxi ja Maci installerit.

Veel kaks paketti väärib mainimist:

  1. ipython (tuleb juba kaasa mõeldes) suurepärane täiustatud kest. hea sissejuhatus on showmedos http://showmedo.com/videotutorials/series?name=PythonIPythonSeries

  2. nltk - loomuliku keele tööriistakomplekt http://www.nltk.org/ suurepärane pakett juhuks, kui soovite mõne korpusega statistikat / masinõpet teha.

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

See on huvitav küsimus koos suurepäraste vastustega.

Võite leida kasuliku arutelu paberist, mille kirjutasin Roseline Bilinaga. Lõplik versioon on siin: http://www.enac.fr/recherche/leea/Steve%20Lawford/papers/python_paper_revised.pdf (sellest ajast alates on see ilmunud peaaegu sellisel kujul kui "Python ökonomeetria ja statistika ühtsete uuringute jaoks ", väljaandes Econometric Reviews (2012), 31 (5), 558-591).

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

Võib-olla pole otseselt seotud, kuid R-l on interaktiivsete seansside jaoks kena graafilise kasutajaliidese keskkond (redigeeri: Mac / Windows). IPython on väga hea, kuid Matlabile lähemal oleva keskkonna jaoks võiksite proovida Spyderit või IEP-d. Mul on IEP-i kasutamisega hilja õnnestunud, kuid Spyder näeb välja paljutõotavam.

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

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

Ja IEP-sait sisaldab seotud tarkvara lühikest võrdlust: http: / /code.google.com/p/iep/wiki/Alternatives

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

Keegi pole varem oranži maininud:

Andmete kaevandamine visuaalse programmeerimise või Pythoni skriptimise kaudu. Masinõppe komponendid. Bioinformaatika ja tekstikaevanduse lisad. Pakitud andmeanalüütika funktsioonidega.

Ma ei kasuta seda igapäevaselt, kuid seda peab kindlasti nägema igaüks, kes eelistab GUI-d käsurea liidese asemel. > Isegi kui eelistate viimast, on Orange hea tuttav, kuna saate oma apellatsioonitükke Pythoni skriptidesse hõlpsalt importida, kui vajate mõnda selle funktsionaalsust.

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

Peaksin lisama IronPythonile rajatud arvulise arvutuskeskkonna Sho väljakutse. Kasutan seda praegu Stanfordi masinõppe tunnis ja see on olnud tõeliselt kasulik. See on ehitatud lineaarsete algebra pakettide ja diagrammivõimalustega. Olles .Net on seda lihtne laiendada C # või mõne muu .Net-keelega. Minu arvates on Windowsi kasutajana alustamine palju lihtsam kui sirged Python ja NumPy.

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

Leidsin siit suurepärase sissejuhatuse pandadele, mida soovitan vaadata. Pandas on hämmastav tööriistakomplekt, mis pakub R-i kõrgetasemelisi andmete analüüsivõimalusi koos Pythoni ulatuslike teekide ja tootmiskvaliteediga.

See ajaveebipostitus annab Pandale suurepärase sissejuhatuse täiesti algaja vaatenurgast:

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

Kas saaksite kirjutada paar sõna selle kohta, millised omadused muudavad selle "suurepäraseks", et lugejad saaksid eelnevalt kindlaks teha, kas selle vaatamine oleks neile sobiv?
Vabandust. Mõistsin just, et lisasin oma algsesse postitusse vale lingi.
#21
+7
JKP
2012-08-10 02:13:57 UTC
view on stackexchange narkive permalink

Pange tähele, et SPSS Statisticsil on integreeritud Pythoni liides (ka R). Nii saate kirjutada Pythoni programme, mis kasutavad Statistika protseduure ja toodavad kas tavalist kenasti vormindatud Statistika väljundit või tagastavad tulemused oma programmi edasiseks töötlemiseks. Või võite käitada Pythoni programme käsureal Statistika. Peate ikkagi tundma statistika käsukeelt, kuid võite ära kasutada nii statistika pakutavat andmehaldust, esitluse väljundit jne kui ka protseduure.

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

Värske DataCampi võrdlus annab selge pildi R-st ja Pythonist.

Nende kahe keele kasutamine andmeanalüüsi väljal. Pythoni kasutatakse tavaliselt siis, kui andmeanalüüsi ülesanded tuleb integreerida veebirakendustega või kui statistikakood tuleb lisada tootmise andmebaasi. R-d kasutatakse peamiselt siis, kui andmeanalüüsi ülesanded nõuavad eraldi arvutamist või üksikute serverite analüüsi.

Mulle tundus see selles ajaveebis nii kasulik ja loodan, et see aitab ka teistel mõista hiljutisi suundumusi mõlemas keeles. Piirkonnas on tulemas ka Julia. Loodetavasti aitab see!

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

Pythonil on veel pikk tee minna, enne kui seda saab võrrelda R-ga. Sellel on oluliselt vähem pakette kui R ja madalama kvaliteediga pakette. Inimesed, kes peavad kinni põhitõdedest või tuginevad ainult oma kohandatud raamatukogudele, saaksid tõenäoliselt oma tööd teha ainult Pythonis, kuid kui olete keegi, kes vajab täpsemaid kvantitatiivseid lahendusi, julgen öelda, et seal pole R-le midagi lähedast.

Tuleb ka märkida, et Pythonil pole tänaseni R-Stuudioga võrreldavat korralikku teaduslikku Matlab-stiilis IDE-d (palun ärge öelge Spyderit) ja peate kõik konsoolil välja töötama. Üldiselt nõuab kogu Pythoni kogemus suurt hulka "geeknessi", mis enamikul inimestel puudub ja millest see ei hooli.

Ärge saage valesti aru, ma armastan Pythoni, see on tegelikult minu lemmikkeel, mis , erinevalt R-st, on päris programmeerimiskeel. Puhtate andmete analüüsi osas olen siiski sõltuv R-st, mis on seni kõige spetsialiseerunud ja arenenum lahendus. Kasutan Pythoni siis, kui mul on vaja andmeanalüüs tarkvaraehitusega ühendada, nt. looge tööriist, mis automatiseerib meetodid, mille programmeerisin esmalt räpase R-skriptiga. Paljudel juhtudel kasutan Pythonist R-ile helistamiseks rpy2-d, kuna enamikul juhtudel on R-paketid palju paremad (või pole neid Pythonis üldse olemas). Sel viisil püüan saada mõlemast maailmast parima.

Ma kasutan mõnda Matlabi algoritmide puhtaks arendamiseks, kuna mulle meeldib selle matemaatilises stiilis süntaks ja kiirus.

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

Usun, et Python on minu valdkonnas parem töölaud. Tegelen palju kraapimisega, andmete rabelemisega, suurte andmetöödega, võrguanalüüsidega, Bayesi modelleerimisega ja simulatsioonidega. Kõik need asjad vajavad tavaliselt kiirust ja paindlikkust, nii et leian, et Python töötab nendel juhtudel paremini kui R. Siin on mõned asjad, mis mulle meeldivad Pythoni kohta (mõned on ülal mainitud, teised punktid mitte):

-Puhastaja süntaks; loetavam kood. Usun, et Python on moodsam ja süntaktiliselt järjepidevam keel.

-Pythonil on märkmik, Ipython ja muud hämmastavad tööriistad koodi jagamiseks, koostööks ja avaldamiseks.

-iPythoni märkmik võimaldab kasutada Pythoni koodis R-d, nii et alati on võimalik tagasi pöörduda R-i juurde.

-Palju kiiremini ilma C.-d kasutamata. Cythoni, NUMBA, ja muud C-integreerimise meetodid viivad teie koodi kiirusega, mis on võrreldav puhta C-ga. Minu teada pole seda võimalik saavutada R-s.

-Pandad, Numpy ja Scipy puhuvad standardi R välja veest. Jah, on mõned asjad, mida R saab teha ühes reas, kuid võtab pandad 3 või 4. Üldiselt saavad Pandad siiski hakkama suuremate andmekogumitega, neid on lihtsam kasutada ja need pakuvad teiste Pythoniga integreerimisel uskumatult paindlikkust paketid ja meetodid.

-Python on stabiilsem. Proovige 2gigine andmekogum RStudiosse laadida.

-Üks korralik pakett, mida ei tundu ülal mainitud, on PyMC3 - suurepärane üldine pakett enamiku teie Bayesi modelleerimiste jaoks.

-Mõned eespool mainivad ggplot2 ja grub selle puudumise Python. Kui olete kunagi kasutanud Matlabi graafilisi funktsioone ja / või kasutanud Pythonis matplotlibi, siis teate, et viimased suvandid on üldiselt palju võimekamad kui ggplot2.

Kuid võib-olla on R-i lihtsam õppida ja ma kasutan seda sageli juhtudel, kui ma pole modelleerimisprotseduuridega veel liiga tuttav. Sel juhul on R-i riiuliväliste statistikakogude sügavus ületamatu. Ideaalis teaksin mõlemat piisavalt hästi, et saaksin vajadusel kasutada.

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

Neile, kes peavad Windowsi all töötama, aitab Anaconda ( https://store.continuum.io/cshop/anaconda/) tõesti palju. Pakettide installimine Windowsi all oli peavalu. Anaconda on installitud, saate seadistada kasutusvalmis arenduskeskkonna ühe liiniga.

Näiteks loo

  conda -n stats_env python pip numpy scipy matplotlib pandad  

kõik need paketid tõmmatakse ja installitakse automaatselt.

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

Mõtlesin, et lisan ajakohasema vastuse kui antud. Olen läbi ja lõhki Pythoni tüüp ja siin on põhjus:

  1. Python on hõlpsasti kõige intuitiivsem süntaks kõigist kasutatavatest programmeerimiskeeltest, välja arvatud võimalusel LabVIEW. Ma ei saa kokku lugeda, mitu korda olen Pythonis lihtsalt proovinud 20–30 koodirida, ja need on töötanud . See on kindlasti rohkem, kui võib öelda mõne muu keele, isegi LabVIEW kohta. See teeb arendusaega ülikiireks.

  2. Python on toimiv. Seda on mainitud teistes vastustes, kuid see kordub. Leian, et Python avab usaldusväärselt suured andmekogumid.

  3. Pythoni paketid jõuavad kiiresti R-i pakettidele. Kindlasti on Pythoni kasutamine viimastel aastatel märkimisväärselt ületanud R-i kasutamist, kuigi tehniliselt on see argument muidugi ad populum.

  4. Üha enam leian, et loetavus on kõige olulisem omadus, mida hea kood võib omada, ja Python on kõige loetavam keel üldse (eeldades muidugi, et järgite mõistlikult häid kodeerimistavasid). Mõnes varasemas vastuses on püütud väita, et R on loetavam, kuid nende näidatud näited tõestavad minu jaoks kõik vastupidist: Python on loetavam kui R ja seda on ka palju kiirem õppida. Õppisin Pythoni põhinädalad ühe nädalaga!

  5. Lambda Labs Stack on uuem tööriist kui Anaconda ja see on minu arvates ühekordne. Negatiivne külg: saate installida ainult Ubuntu 16.04, 18.04 ja 20.04 ning nendes versioonides Ubuntu derivaadid. Tagurpidi: saate kõik hallatavad GPU-ga kiirendatud paketid kuni riistvaradraiveriteni. Anaconda seda ei tee. Lambda Labsi virn hoiab ühilduvaid versiooni numbreid alates Theano või Kerase versioonist kuni NVIDIA GPU draiveri versioonini. Nagu te ilmselt teate, pole see tühine ülesanne. Mis puutub masinõppesse, on Python kuningas, käed alla. Ja GPU kiirendus on enamik andmespetsialiste leidvat, et ilma nendeta ei saa.

  6. Pythonil on nüüd ülimõeldud IDE: PyCharm. Minu arvates peaksid seda kasutama tõsised Pythoni arendajad - kindlasti EI Jupyteri märkmikud. Kuigi paljud inimesed kasutavad Visual Studio koodi, leian, et PyCharm on Pythoni jaoks parim IDE. Saate kõik, mida praktiliselt tahta võite - IPython, terminal, täiustatud silumisvahendid, sealhulgas mälus olev kalkulaator, ja lähtekoodi juhtimise integreerimine.

  7. Paljud inimesed on öelnud, et Pythoni statistikapaketid pole nii täielikud kui R-id. Pole kahtlust, et see on siiski mõnevõrra tõsi (kuigi vt eespool 3). Teisest küljest pole mul näiteks vaja olnud neid uskumatult arenenud statistikapakette. Eelistan oodata täpsemat statistilist analüüsi, kuni saan aru äriküsimusest, mida küsitakse. Sageli on probleemi lahendamiseks suhteliselt sirgjooneline algoritm meetrika arvutamiseks. Sel juhul teeb Python suurepärase tööriista mõõdikute arvutamiseks.

  8. Paljudele inimestele meeldib R-i võimekust teha võimsaid asju ainult ühes koodireas. Minu arvates pole see kohutavalt tore argument. Kas see on üks koodirida loetav? Tüüpiline kood kirjutatakse üks kord ja loetakse kümme korda! Loetavus loeb, nagu Pythoni zen ütleb. Mul oleks pigem mitu rida loetavat Pythoni koodi kui üks R-koodi krüptiline rida (mitte muidugi, et need on muidugi ainsad valikud; tahan lihtsalt öelda, et vähem koodiridu ei võrdu suurema loetavusega) / p>

  9. Muide, ma lihtsalt ei saa SAS-i kohta kommentaari tegemisele vastu panna, kuigi see on teemaväline. Nagu ma ühes varasemas punktis ütlesin, õppisin Pythoni põhitõed ühe nädalaga. Siis proovisin SAS-i. Töötasin läbi umbes kolm peatükki 11-peatüki raamatus SAS-ist ja mul kulus selleks kaks kuud! Pealegi, kui ma midagi proovisin, siis see kunagi kunagi ei töötanud esimest korda. Kutsun teid tungivalt üles SAS-ist nii kiiresti kui võimalik loobuma. Sellel on äärmiselt keerukas süntaks, see on erakordselt halastamatu jne. Ainus hea asi, mida selle kohta öelda saab, on see, et selle statistilised võimalused on sama täielikud kui R-d. Hästi.

Nii et teil on see olemas. Python kogu tee!



See küsimus ja vastus tõlgiti automaatselt inglise keelest.Algne sisu on saadaval stackexchange-is, mida täname cc by-sa 2.0-litsentsi eest, mille all seda levitatakse.
Loading...