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:

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 Contentstekitab ja kuvab töölehe sisukorra
Collapsible Headingsvõimaldab kinni/lahti voltida töölehe sektsioone
Equation Auto Numberingseadistab 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").

LaTeX'i matemaatikakäsustik

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)

Lineaaralgebra (IPYNB)

Tõenäosusteooria ja statistika (IPYNB)

Interpoleerimine (IPYNB)

Funktsioonide sobitamine ja optimeerimine (IPYNB)

Numbriline diferentseerimine ja integreerimine (IPYNB)

Harilikud diferentsiaalvõrrandid (IPYNB)

Osatuletistega diferentsiaalvõrrandid (IPYNB)

Signaalitöötlus (IPYNB)

Masinõpe (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