Installeerimine | Algteadmised | Andmetöötlus ja teadusarvutused |
Arvutijuhitavad mõõtmised | Programmeerimise alused
Tõenäoliselt tuntuim interaktiivne arvutuskeskkond on Matlab, millel on ka hulk vabavaralisi kloone, nagu Octave ja Scilab. Samas Matlab'i kood ei põhine ühelgi "tõelisel" ehk levinud ja üldotstarbelisel programmeerimiskeelel ja selle traditsiooniline kasutajaliides ei võimalda koodi, graafikuid, jooniseid ja teksti käsitleda ühe tervikliku dokumendina. Viimast võimaldavad suured kommertsiaalsed arvutuspaketid Maple ja Mathematica, kuid need on põhiolemuselt arvutialgebra suunitlusega ja nende programmeerimisvahendid on veelgi piiratumad. Üheks populaarseks vabavaraliseks alternatiiviks on kujunenud programmeerimiskeel Python ja sellel põhinevad arendusvahendid. Tegemist on lihtsa, lakoonilise ja väljendusrikka keelega, mis on vabalt saadaval enamikele arvutiplatvormidele. Võtmetähtsusega on mahukas teaduslik ökosüsteem, mis sisaldab hulga teadusarvutusteks hädavajalikke teeke (NumPy, SciPy, SymPy, Matplotlib, jt). Väheolulised pole ka riistvara juhtimise, graafilise kasutajaliidese tegemise jm võimalused.
Jupyter Notebook (endise nimega IPython Notebook) on veebilehitsejas toimiv rakendus, mis lubab Pythoni (või mõne muu interaktiivse keelega) suhelda samalaadse kasutajaliidese vahendusel mida on traditsiooniliselt kasutanud Maple ja Mathematica:
- saab interaktiivselt käivitada lühikesi koodijuppe
- kogu sisend-väljund säilitatakse töölehel, kõiki eelnevaid sisestusi saab redigeerida ja vastavaid arvutusi korrata
- arvutuste vahele saab lisada rikkaliku kujundusega teksti, valemeid ja jooniseid
Seega tegemist on teatava interaktiivse "märkmeraamatuga" (notebook), mis ühelt poolt sobib matemaatiliseks eksperimenteerimiseks ja teiselt poolt arvutuskäigu dokumenteerimiseks. Seevastu mõned muud teadusliku suunitlusega Pythoni arendusvahendid (näiteks Spyder) on sarnaseimad just Matlab'ile.
Jupyter Notebook'i serverprogramm ja arvutusmootor ei pruugi asuda tingimata selles samas arvutis kus programmi kasutatakse (läbi veebibrauseri). Näiteks Jupyter Notebook'i võib koheselt veebis katsetada ilma arvutisse midagi installeerimata.
Käesolev kirjutis koondab sissejuhatavaid materjale mitmesuguste arvutus- ja andmetöötlusülesannete lahendamiseks Pythonis Jupyteri töölehe vahendusel. Näited on põhiliselt füüsika vallast. Eeldatakse, et lugeja on pealiskaudselt tuttav programmeerimise, matemaatika ja füüsika põhimõistetega. Tuleb rõhutada, et siinsed tekstid püüavad ainult demonstreerida (suuresti näidete varal), millised põhimõtted ja võimalused on üldse olemas. Kõikide funktsioonide ja nende kasutamise nüansside teadasaamiseks tuleb ikkagi lugeda Pythoni (või selle lisapakettide) dokumentatsiooni (vt ka linke Jupyter Notebook'i Help-menüüs).
Installeerimine ja käivitamine
Windows'i jaoks on olemas mitmeid teadusliku suunitlusega Pythoni
distributsioone, nagu WinPython,
Enthought Canopy
ja Anaconda. Viimane on
hetkel populaarseim ja selle täisversioon
(~500 MB) sisaldab ka Jupyter Notebook'i. Alternatiivselt võib installeerida nuditud versiooni
Miniconda (~30 MB).
Sel juhul tuleb pärast installeerimise lõppu avada Anaconda käsurida
(Start-menüüst Anaconda | Anaconda Prompt
ja käivitada käsk
conda install scipy matplotlib sympy jupyter
millega installeeritakse nii Jupyter kui ka paljud teadusarvutusteks vajalikud
Pythoni teegid. Anaconda aluseks on paketihaldussüsteem
Conda,
mis lubab vastavalt vajadusele juurde installeerida ja uuendada Pythoni mooduleid
jm komponente.
Windowsi Start-menüüsse tekib otsetee
Anaconda | Jupyter Notebook.
Sellel klikkides käivitatakse Jupyter Notebook'i serverprogramm ja selle graafiline
liides avaneb veebilehitsejas (aadressil http://localhost:8888
).
Jupyter Notebook'i käivitamisel avaneb töölaud (dashboard).
Algselt kuvatakse failibrauser (vaheleht Files)
juurkataloogi sisuga. Failibrauseriga saab teostada põhilisi faili- ja kaustatoiminguid
(navigeerimine kaustapuus, uute alamkaustade loomine, jms). Jupyteri
märkmeraamatuid esindavad failid laiendiga .ipynb
. Hiireklikk faili
nimel avab märkmeraamatu veebibrauseri uuel vahelehel. Uus Python-keelega
seostatud töölehe fail tekib käsuga New | Python 3.
Fail luuakse aktiivses kaustas (esialgu nimega Untitled.ipynb
) ja
avaneb kohe uuel vahelehel. Failinimi kuvatakse ka märkmeraamatu tiitelribal.
Sellel klikkides saab failinime ära muuta.
Failibrauser kuvab algselt juurkataloogi sisu, milleks vaikimisi on
kasutaja kodukataloog (Windowsis C:\Users\Kasutaja
). Töölehe faile
saab luua või avada ainult juurkataloogis ja selle alamkataloogides. Kui
soovitav töökataloog asub mujal, tuleb otsetee (shortcut) seadetes näidata sobilik
juurkataloog käsureal viimase parameetrina (algselt on seal süsteemimuutuja
%USERPROFILE%
, mis osutab kasutaja kodukataloogile). Algsed otseteed
paiknevad kataloogis C:\ProgramData\Microsoft\Windows\Start Menu\Programs
.
Jupyter Notebook'ile on saadaval rida kasulikke laiendusi (extensions).
Suure hulga selliseid laiendusi saab installeerida käsuga
conda install -c conda-forge jupyter_contrib_nbextensions
Jupyteri töölauale tekib uus vaheleht Nbextensions,
kus saab vajaliku laienduse aktiveerida ja seadistada. Mõned näited:
Table of Contents | tekitab ja kuvab töölehe sisukorra |
---|---|
Collapsible Headings | võimaldab kinni/lahti voltida töölehe sektsioone |
Equation Auto Numbering | seadistab MathJax valemite nummerdamise ja viitamise |
Loomulikult võib Anaconda asemel võtta aluseks Pythoni baasinstallatsiooni, mis on saadaval Pythoni ametlikul veebilehel. Sel juhul tasuks installeerimisel aktiveerida suvand Add Python to PATH, et edaspidi saaks Pythoni interpretaatorit jm Pythoniga seotud programme käivitada suvalisest kataloogist.
Pythoni enda paketihaldur kannab nime pip.
Seega käsureal tuleb käivitada
pip install scipy matplotlib sympy jupyter
Viimaks Jupyter Notebook käivitub käsuga
jupyter notebook
Algteadmised
Python ja Jupyter Notebook (IPYNB)
Tutvustab Jupyteri keskkonda, Python-keelt ja elementaarseid matemaatilisi vahendeid Pythonis
(sh moodulid
math
, cmath
, matplotlib.pyplot
, numpy
,
scipy
ja sympy
)
Soovituslikud Pythoni vahendid ja töövõtted
Hulk detailselt väljatöötatud lihtsaid lahendusi numpy
ja
matplotlib.pyplot
baasil.
Eelkõige on silmas peetud füüsika praktikumi vajadusi ("Füüsika praktikum I").
Komplekt LaTeX'i käske, mida läheb tüüpiliselt vaja valemite kujundamiseks Jupyter Notebook keskkonnas
Andmetöötlus ja teadusarvutused
Järgnevad teemad lähevad kohati matemaatilistesse või tehnilistesse detailidesse, mis on eelkõige ette nähtud kursuse "Andmetöötlus ja teadusarvutused" kuulajaile.
Arvud ja arvumassiivid (IPYNB)
Graafikud (Matplotlib) (IPYNB)
Interaktiivsed ja animeeritud graafikud (IPYNB)
Tõenäosusteooria ja statistika (IPYNB)
Funktsioonide sobitamine ja optimeerimine (IPYNB)
Numbriline diferentseerimine ja integreerimine (IPYNB)
Harilikud diferentsiaalvõrrandid (IPYNB)
Osatuletistega diferentsiaalvõrrandid (IPYNB)
Arvutijuhitavad mõõtmised
Eksperimendid alalisvooluga (IPYNB)
Programmeerimise alused
Veebis leidub hulk eestikeelseid õppematerjale, mis on spetsiaalselt programmeerimise algõppeks Pythoni baasil.
Maria Gaiduk | Programmeerimine Pythonis | uttv.ee |
Eno Tõnisson | Programmeerimisest maalähedaselt | courses.cs.ut.ee |
Eno Tõnisson | Programmeerimise alused | courses.cs.ut.ee |
Programmeerimise algkursus | courses.cs.ut.ee | |
Aivar Annamaa | Programmeerimise õpik | programmeerimine.cs.ut.ee |
Tauno Palts | Programmeerimine (valikkursus gümnaasiumile) | web.htk.tlu.ee |