3 Umhverfi fyrir Python: Jupyter og Colab¶
Árið 2014 var byrjað á verkefni sem nefnist Jupyter (sbr. Wikipediu) sem snýst um að búa til umhverfi þar sem blanda má saman lýsingu verkefna, stærðfræðiformúlum, forritum, og úttaki forrita í sama skjali eða vinnubók. Upphaflega var hægt að nota eitt af þremur forritunarmálum, Julia, Python og R, og af þeim er nafnið dregið, en síðan hafa bæst við fleiri mál. Hægt er að nota Jupyter vinnubækur á eigin tölvu, t.d. með því að setja upp hugbúnað sem nefnist JupyterLab, en það er líka hægt að búa þær til í vafra í kerfinu Google Colaboratory (oft stytt í Colab) sem keyrir í skýinu. Þessar fyrirlestrarnótur miðast við að Jupyter-vinnubækur séu notaðar.
3.1 Notkun Google Colab¶
Google Colabatory er þjónusta hjá Google til að búa til og vinna með Jupyter vinnubækur. Vinnubækurnar eru geymdar á Google Drive svæði notanda, og forritin í þeim eru keyrð á sérstakri gervitölvu (virtual machine) sem Google leggur til. Skrár sem sem forritin þurfa eða búa til eru geymdar á tímabundnu disksvæði á þesari gervitölvu. Python-þýðandinn er nýlegur (nánar tiltekið útgáfa 3.10.12 í janúar 2024), helstu pakkar eru þegar uppsettir (m.a. þeir sem nefndir eru í kafla 1.2), og auðvelt er að bæta við pökkum eftir þörf.
Til að byrja á vinnubók á Colab þarf fyrst að stofna reikning hjá Google. Síðan má heimsækja colab.research.google.com og velja File–New notebook. Í reitinn sem birtist má slá inn Python-forrit, og svo má keyra forritið með því að smella á þríhyrningstáknið á vinstri brún reitsins eða með því að slá á ctrl/enter. Hægt er að bæta við textareitum og forritsreitum, vista vinnubókina, prenta hana o.s.frv. og eru helstu slíkar skipanir sýndar hér að neðan í kafla 3.4.
Æfing: Google Colab prófun
Farið inn á Google Colab, afritið forritið Forrit 2.2 (þ.e. Collatz) inn í keyrslureitinn og prófið að keyra hann.
Bætið við textareit ofan við keyrslureitinn (ef smellt er á + Text kemur textareitur fyrir neðan, sem hægt er að færa upp með því að smella á upp-örina efst til hægri (↑). Setjið titil og smá skýringartexta inn í reitinn með því slá inn:
# Forrit sem reiknar Collatz-runur $n_{k+1} = 3n_k + 1$ ef $n$ er oddatala<br> $n_{k+1} = \dfrac{n_k}{2}$ ef $n$ er slétt tala Ef nýja talan $n_{k+1} = 1$ þá er hætt að reikna. ***
Búið til nýjan forritsreit neðst (með + Code) og setjið þar eftirfarandi skipanir:
n0 = int(input("Sláið inn tölu til að byrja Collatz runu")) collatz_runa(n0)
Keyrið reitinn og sláið inn 27 (sem gefur langa röð) og aðrar tölur ef vill.
Búið til nýjan forritsreit og sláið inn:
tala = 3.4 viðbót = 5.6 útkoma = tala + viðbót
Smellið svo á táknið
{x}
á vinstri spássíu og skoðið innihaldið í breytunum með því að láta bendilinn svífa yfir nöfnunum sem birtast.Búið til PDF-skjal úr vinnubókinni með því að velja File–Print og síðan PDF–Save as PDF eða Microsoft Print to PDF eða (More settings)–PDF–Open in Preview (eftir vafra/tölvu). Takið eftir að lárétta línan sem fæst með
***
hjálpar til við að aðskilja textareitinn og forritsreitinn.
Hér hefur verið smellt á hnappinn í græna juhringnum til að fá efnisyfirlit. Aðrir hnappar sem nefndir eru í æfingunni að framan eru sýndir með rauðum hring.
3.2 Uppsetning JupyterLab á eigin tölvu¶
Anaconda. Auðveldasta leiðin til að setja upp bæði Python og Jupyter á eigin tölvu er að nota hugbúnaðarpakka sem nefnist Anaconda (sem er stærsta kyrkislanga í heimi, sbr. að Python er líka svoleiðis slanga). Til að flýta fyrir uppsetningu væri hægt að nota minni útgáfu af Anaconda sem kallast Miniconda en leiðbeiningarnar hér miðast við Anaconda. Með því fylgja sjálfkrafa fjölmargir pakkar fyrir vísindalega forritun, þar á meðal flestallir sem fjallað er um í þessum fyrirlestrarnótum (NumPy, Matplotlib, SciPy, Pandas).
Uppsetning Anaconda með nýjasta Python Heimsækið anaconda.com/download, og hlaðið niður uppsetningarforriti fyrir ykkar stýrikerfi og keyrið það.
Keyrsla JupyterLab. Eftir uppsetningu Miniconda/Anaconda má keyra JupyterLab með því að opna terminal-glugga og gefa þar einhverja eftirfarandi skipana:
jupyter-lab
jupyter lab
jupyter-lab skrá.ipynb
Þá opnast JupyterLab í glugga í aðalvafra tölvunnar með möppuna sem byrjað var í
sjálfgefna. Síðasttalda skipunin opnar sjálfkrafa eldri vinnubók skrá.ipynb
.
JupyterLab-glugginn lítur nokkurnveginn svona út:
Hér eru tvær undirmöppur og fjórar skrár: tvær vinnubækur eða Jupyter-bækur (auðkenndar með .ipynb, en Jupyter hét áður IPython), eitt Python-forrit (auðkennt með .py) og ein pdf-skrá. Til að búa til nýja vinnubók er smellt á efri Python 3-hnappinn, og þá opnast bókin í nýjum flipa í vafranum. Hún heitir sjálfkrafa Untitled2 en með því að hægri-smella á nafnið (eða smella á File) og velja Rename notebook má skíra hana einhverju skynsemlegra nafni. Eldri bók er opnuð annaðhvort með því að smella á hana í skráalistanum vinstra megin eða tilgreina hana á skipanalínunni eins og sýnt er að ofan.
Aflúsun í JupyterLab Einn kostur við JupyterLab umfram Google Colab er að það er hægt að setja bremsur sem stoppa keyrslu í miðju kafi, og þegar forritið hefur stöðvast má skoða gildi á breytum áður en forritið er sett aftur af stað. Til að virkja aflúsnarham er smellt á mynd af pöddu sem er efst hægra megin í forritsglugganum (sjá mynd), og bremsa er virkjuð með því að smella vinstra megin við línunúmer í forritinu (þar kemur rauður hringur).
3.3 Vinnubækur¶
Eins og fram kom í æfingunni í kafla 3.1 innihalda vinnubækur reiti (cells) af tvennu tagi, forritsreiti (code), og textareiti (markdown). Í þeim fyrrnefndu eru Python-forrit eða forritsbútar, en í hinum eru fyrirsagnir og skýringartextar sniðnir með umbrotsmálinu (markup language) Markdown. Í textareitina er líka hægt að setja stærðfræðiformúlur sniðnar með formúlumálinu LaTeX og jafnvel myndir ef vill. Forritsbútana er hægt að keyra og fer úttak keyrslu inn í bókina, neðst í viðkomandi forritsreit. Segðin sem er neðst í hverjum reit skrifast sjálfkrafa út, en nota þarf print-fallið til að skrifa út niðurstöður framar í reitnum.
Það er sæmilega auðvelt að læra á notkun hvort sem er Colab eða JupyterLab með því að prófa sig áfram, en líka getur verið gagnlegt að skoða leiðbeiningar á netinu, sbr grein 3.8. Mikilvægustu skipanir beggja labbanna fylgja svo hér í næsta kafla.
Æfing: JupyterLab
Setjið upp JupyterLab á eigin tölvu
Endurtakið æfinguna í kafla 3.1.
Prófið aflúsun.
Prófið einhverjar af skipununum úr næsta kafla.
3.4 Colab og JupyterLab skipanir¶
Aðgerð |
Colab skipun |
JupyterLab skipun |
---|---|---|
Skipta um nafn á vinnubók |
Smella á nafnið efst t.v. |
Hægri-smella á nafnið efst t.v. |
Ná í eintak á eigin tölvu |
File→Download |
(þarf ekki) |
Vista undir nýju nafni |
File→Save-a-copy-in-Drive og |
File→Save-Notebook-As |
Vista |
File→Save |
File→Save-Notebeook |
Vista sem PDF |
File→Print→Save-as-PDF |
File→Export notebook as→HTML, |
Aðgerð |
Colab skipun |
JupyterLab skipun |
---|---|---|
Keyra forritsreit |
ctrl/enter |
ctrl/enter |
Keyra forritsreit og fara í næsta reit |
shift/enter |
shift/enter |
Stoppa keyrslu |
ctrl/m i |
esc i i |
Núllstilla Python |
ctrl/m . |
esc 0 0 |
Aðgerð |
Colab skipun |
JupyterLab skipun |
---|---|---|
Setja inn forritsreit |
smella á + Code |
smella á + |
Setja inn textareit |
smella á + Text |
smella á + og svo Code |
Færa reit |
smella á upp-ör/niður-ör efst t.h. |
beita „Drag-and-drop“ á reit |
Kljúfa reit |
ctrl/m – |
ctrl/shift/– |
Sameina reiti |
mála reiti → hægri smella |
mála reiti → Edit |
Eyða reit |
ctrl/m d |
esc d d |
Sýna textareit sem markdown |
tvísmella á reit |
tvísmella á reit |
Sníða textareit |
Velja einhvern annan reit |
ctrl/enter |
Afturkalla („undo“) reitaskipun |
Edit→Undo … |
Edit→Undo-Cell-Operation |
Endurtaka („redo“) reitaskipun |
Edit→Redo … |
Edit→Redo-Cell-Operation |
Aðgerð |
Colab/JupyterLab skipun |
---|---|
Færa bendil |
örvar |
Eyða |
Backspace, Del (Fn/Bcksp) |
Velja, klippa, afrita, líma |
mála með mús |
Velja allt í reit |
ctrl/a (⌘/a) |
Flytja til hægri, vinstri |
tab, shift/tab |
Afturkalla („undo“) |
ctrl/z (⌘/z) |
Endurtaka („redo“) |
ctrl/shift/z (⌘/shift/z) |
3.5 Vistun vinnubóka á PDF-sniði¶
Colab. Veljið File → Print, eða sláið á ctrl/p eða ⌘/p (Mac), og svo Destination → Save-as-PDF (PDF → Save-as-PDF á Mac). Þá birtist gluggi þar sem velja má möppu og nafn fyrir PDF-skjalið.
Aðvörun:
Í Safari virðist stundum þurfa að velja File → Print í vafranum en ekki í Colab-flipanum, en í Chrome virðist ekki skipta máli hvoru megin File → Print er valið.
JupyterLab. Í JupyterLab er lús þannig að með File → Print vistast stærðfræðiformúlur ekki rétt. Það þarf að fara krókaleið og velja fyrst File → Export notebook as → HTML og svo þarf að opna HTML-skjalið sem verður til og vista það í PDF með File → Print.
3.6 Vistun vinnubóka í .py-skjal¶
Colab. Veljið *File → Download → Download .py. Þá birtist gluggi þar sem velja má möppu og nafn fyrir skjalið.
JupyterLab. Veljið *File → Save and Export Notebook As → Executable Script, veljið möppu og nafn og „Save“.
3.7 Markdown og Latex¶
Finna má ýmsar leiðbeiningar um Markdown-málið á netinu, sbr. grein 3.8. Þar er útskýrt hvernig búa má til fyrirsagnir (með #, ##, ###), skáletra og feitletra (með *texti* og **texti**), búa til lista, setja inn myndir (sem getur reyndar verið dálítið stúss), láréttar línur, stærðfræðiformúlur og ýmislegt fleira.
Texti sem er inndreginn um a.m.k. fjögur bil birtist óbreyttur með jafnbilaletri (monospaced font).
Til að búa til töflu má nota lóðrétt strik til að afmarka dálka og : til að tilgreina vinstri/hægri jöfnun eða miðjun. Hér er einfalt dæmi:
nr |nafn |aldur
---|:------:|----:
1 |Ari | 9
2 |Bryndís | 11
...
105|Örn |8
Stærðfræðiformúlur eru með LaTeX-sniði og settar inn með $ formúla $ eða
$$formúla$$
LaTeX getur búið til gríska stafi og allskyns stærðfræðitákn, það setur
sjálfkrafa skáletur á breytur og hæfileg bil á milli einstakra hluta í formúlum.
Wikibókin um LaTeX-stærðfræði er sæmilega ítarleg, og svo
má finna fjölmarga styttri hjálpartexta, t.d. þennan eftir David Chapman.
Fallegasti stærðfræðitextinn fæst með því að setja dollaramerki utan um alla
stærðfræði, hvort sem það eru flóknar formúlur eða bara „\(x=3\)“ og
„\(a\) og \(b\) eru vigrar“ (sem sé $x=3$
og $a$ og $b$
eru vigrar
) en ekki „x=3“ og „a og b eru vigrar“.
3.8 Colab- og JupyterLab-leiðbeiningar á netinu¶
Hægt er að finna ýmsar vefsíður með leiðbeiningum um Google Colab og JupyterLab, t.d.:
(fyrstu tvær eru frá Google sjálfum).
Æfing: Kynning á vinnubókum I
Vinnubókin kynning.ipynb byrjar á tveimur æfingum í notkun Google Colab. Ef smellt er á hana opnast hún hjá GitHub Gist og hægt er að velja Open-in-Colab. Þar má svo velja File–Save a copy in Drive og þá lendir skráin í Google-Drive möppu sem heitir Colab Notebooks, þar sem hægt er að breyta henni og vista breytingar. Náið í þessa skrá og leysið tvær fyrstu æfingarnar, A og B.