{"id":894,"date":"2023-01-02T07:24:16","date_gmt":"2023-01-02T07:24:16","guid":{"rendered":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/?post_type=chapter&#038;p=894"},"modified":"2023-01-02T07:24:17","modified_gmt":"2023-01-02T07:24:17","slug":"jupyterlab-jupyter-notebook-kasutamine-pythoni-koodi-jooksutamiseks","status":"publish","type":"chapter","link":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/chapter\/jupyterlab-jupyter-notebook-kasutamine-pythoni-koodi-jooksutamiseks\/","title":{"raw":"JupyterLab \/ Jupyter Notebook kasutamine Pythoni koodi jooksutamiseks","rendered":"JupyterLab \/ Jupyter Notebook kasutamine Pythoni koodi jooksutamiseks"},"content":{"raw":"<h1 id=\"jupyter-jupyter--page-root\">JupyterLab \/ Jupyter Notebook<a class=\"headerlink\" title=\"Permalink to this heading\" href=\"#jupyter-jupyter--page-root\">\uf0c1<\/a><\/h1>\r\n<img class=\"alignnone size-medium wp-image-897\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/logo-300x158.png\" alt=\"Jupyter logo\" width=\"300\" height=\"158\" \/>\r\n\r\nJupyter Notebook on t\u00f6\u00f6vahend, millega saab arendada ja esitleda erinevaid (andme)teaduse projekte. Sisuliselt on selles v\u00f5imalik kirjutada Pythoni koodi ja esitleda tavalist teksti. N\u00e4iteks saab tuua m\u00f5ne koodin\u00e4ite ja n\u00e4itele juurde lisada selgitavat teksti, pilte jms. Pythoni koodi saab ka jooksutada ning n\u00e4ha tulemust.\r\n\r\nJupyter Notebook'i saab kasutada l\u00e4bi veebibrauseri. See v\u00f5ib jooksutada koodi kas kasutaja enda arvutis v\u00f5i m\u00f5nes serveri pilves. See on just \u00fcks v\u00e4ga hea omadus, et ressursin\u00f5udlikke programme saab jooksutada pilves. N\u00e4iteks m\u00f5ned masin\u00f5ppe algoritmid v\u00f5ivad t\u00f6\u00f6tada mitmeid tunde ning vajada v\u00e4ga v\u00f5imsaid arvuteid.\r\n\r\nJupyterLab on arenduskeskkond veebibrauseris Notebooki faili loomiseks. Jupyter Notebook originaalrakendus v\u00f5imaldab faile redigeerida ja k\u00e4ivitada, JupyterLab annab selleks rohkem v\u00f5imalusi. L\u00f5puks loodav ipynb-fail on m\u00f5lema lahendusega sama (ja saab k\u00e4ivitada \u00fcksk\u00f5ik millisel Jupyter platvormil).\r\n\r\nVaatame j\u00e4rgnevalt nii JupyterLab kui ka Jupyter Notebook installimist ja kasutamist. M\u00f5lemad on saadaval siin: <a class=\"reference external\" href=\"https:\/\/jupyter.org\/\">https:\/\/jupyter.org\/<\/a>\r\n\r\n<section id=\"jupyterlab\">\r\n<h2 id=\"jupyterlab\">JupyterLab<a class=\"headerlink\" title=\"Permalink to this heading\" href=\"#jupyterlab\">\uf0c1<\/a><\/h2>\r\nJupyterLab on t\u00e4iustatud versioon Jupyter Notebook rakendusest. veebibrauseris avanev tekstiredaktor on mugavam ja annab rohkem v\u00f5imalusi. See meenutab rohkem tavaliset IDE (Integrated Development Environment) kasutamist. L\u00f5puks loodav ipynb-fail on t\u00e4pselt sama nagu Notebookiga loodav.\r\n\r\n<section id=\"jupyterlab-i-installimine\">\r\n<h3 id=\"jupyterlab-i-installimine\">JupyterLab'i installimine<a class=\"headerlink\" title=\"Permalink to this heading\" href=\"#jupyterlab-i-installimine\">\uf0c1<\/a><\/h3>\r\nInstallimiseks <code class=\"docutils literal notranslate\"><span class=\"pre\">pip<\/span><\/code> t\u00f6\u00f6riistaga tuleb kirjutada:\r\n\r\n&nbsp;\r\n<div class=\"highlight-text notranslate\">\r\n<div class=\"highlight\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">pip3 install jupyterlab\r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\nEelnev eeldab, et <code class=\"docutils literal notranslate\"><span class=\"pre\">pip<\/span><\/code> on installitud ja asub <code class=\"docutils literal notranslate\"><span class=\"pre\">PATH<\/span><\/code> muutujas (see t\u00e4hendab, et <code class=\"docutils literal notranslate\"><span class=\"pre\">pip<\/span><\/code> on k\u00e4ttesaadav suvalises asukohas k\u00e4sureal). Soovituslik on lisada Python keskkonnamuutujasse <code class=\"docutils literal notranslate\"><span class=\"pre\">PATH<\/span><\/code>, juhend selleks on siin: <a class=\"reference external\" href=\"https:\/\/docs.python.org\/3\/using\/windows.html#setting-envvars\">https:\/\/docs.python.org\/3\/using\/windows.html#setting-envvars<\/a>\r\n\r\nN\u00e4iteks kui Python on installitud kausta <code class=\"docutils literal notranslate\"><span class=\"pre\">C:\\Python\\Python310<\/span><\/code>, siis k\u00e4surealt saab installida j\u00e4rgmise k\u00e4suga:\r\n<div class=\"highlight-text notranslate\">\r\n<div class=\"highlight\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">c:\\Python\\Python310\\python.exe -m pip install jupyterlab\r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\nK\u00e4ivitamine Windowsi masina Bashis (Git Bash, MINGW64):\r\n<div class=\"highlight-text notranslate\">\r\n<div class=\"highlight\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">\/c\/Python\/Python310\/python.exe -m pip install jupyterlab\r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\n<\/section><section id=\"jupyterlab-serveri-kaivitamine\">\r\n<h3 id=\"jupyterlab-serveri-kaivitamine\">JupyterLab serveri k\u00e4ivitamine<a class=\"headerlink\" title=\"Permalink to this heading\" href=\"#jupyterlab-serveri-kaivitamine\">\uf0c1<\/a><\/h3>\r\nKui JupyterLab on installitud, saab serveri k\u00e4ima panna j\u00e4rgmisels:\r\n<div class=\"highlight-text notranslate\">\r\n<div class=\"highlight\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">jupyter-lab\r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\n<code class=\"docutils literal notranslate\"><span class=\"pre\">jupyter-lab<\/span><\/code> installitakse Pythoni kaustas <code class=\"docutils literal notranslate\"><span class=\"pre\">Scripts<\/span><\/code> kausta. N\u00e4iteks k\u00e4ivitamine Windowsi k\u00e4sureal (kui Python pole keskkonnamuutujas <code class=\"docutils literal notranslate\"><span class=\"pre\">PATH<\/span><\/code>):\r\n<div class=\"highlight-text notranslate\">\r\n<div class=\"highlight\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">c:\\Python\\Python310\\Scripts\\jupyter-lab.exe\r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\nV\u00f5i k\u00e4ivitamine Windowsis Bashsis konkreetsest asukohast:\r\n<div class=\"highlight-text notranslate\">\r\n<div class=\"highlight\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">\/c\/Python\/Python310\/Scripts\/jupyter-lab\r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\nSee k\u00e4ivitab JupyterLab serveri aktiivses kaustas ning peaks avanema brauser. Brauseris n\u00e4idatakse aktiivses kaustas olevadi kaustu ja faile. Seal on v\u00f5imalik navigeerida kaustade vahel. Sobivasse kohta saab luua uue faili. Selleks saab paremal osas valida Notebook sektsiooni alt Python 3.\r\n\r\n<img class=\"alignnone size-large wp-image-896\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/lab_new-1024x628.png\" alt=\"JupyterLab uus fail\" width=\"1024\" height=\"628\" \/>\r\n\r\nLuuakse ipynb-laiendiga fail. Notebook fail koosneb koodi ja teksti plokkidest. Koodiplokk toetab Pythoni jooksutamist (teatud variantide puhul ka muid skripte), tekstiplokk toetab Markdown vormindamist. Markdowni s\u00fcntaksi kohta v\u00f5ib t\u00e4psemalt lugeda <a class=\"reference external\" href=\"https:\/\/www.markdownguide.org\/basic-syntax\/\">seda<\/a>. Tegemist on suhteliselt lihtsa ja populaarse tekstivormindamise s\u00fcntaksiga, mis toetab k\u00f5iki peamisi vorminguid: <strong>rasvane kiri<\/strong>, <em>kaldkiri<\/em>, nimistud (<em>bulleted list<\/em>), lingid, pildid jne.\r\n\r\nKoodiplokke saab \u00fckshaava k\u00e4ivitada. K\u00e4ivitatud ploki tulemus (muutujad jms) j\u00e4\u00e4vad programmi m\u00e4llu. Seega kui esimeses plokis defineerida muutuja, saab seda m\u00f5nes j\u00e4rgmises plokis kasutada.\r\n\r\n<img class=\"alignnone size-large wp-image-895\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/lab_demo-1024x340.png\" alt=\"JupyterLab koodiplokk ja tekstiplokk\" width=\"1024\" height=\"340\" \/>\r\n\r\nSisu kirjutades saame plussm\u00e4rgiga (rohelise ringiga t\u00e4histatud eelneva pildi peal) lisada uusi plokke. Ja ploki t\u00fc\u00fcpi saame muuta valikust (sinise ovaaliga t\u00e4histatud). Siin n\u00e4ites l\u00f5ime k\u00f5igepealt \u00fche matemaatilise tehte (mida Python oskab arvutada): <code class=\"docutils literal notranslate\"><span class=\"pre\">1<\/span> <span class=\"pre\">+<\/span> <span class=\"pre\">2<\/span><\/code>. Kui see ploki osa k\u00e4ima panna (ploki ees on k\u00e4ivitamise nupp), n\u00e4idatakse tulemust: <code class=\"docutils literal notranslate\"><span class=\"pre\">3<\/span><\/code>. Seej\u00e4rel lisasime \u00fche Markdown ploki, kuhu kirjutasime v\u00e4ikese selgituse. Seej\u00e4rel lisasime \u00fche koodiploki, kus defineerima \u00e4ra muutuja <code class=\"docutils literal notranslate\"><span class=\"pre\">result<\/span><\/code> (selle v\u00e4\u00e4rtuseks saab <code class=\"docutils literal notranslate\"><span class=\"pre\">5<\/span><\/code>). Sellele j\u00e4rgneb samuti \u00fcks selgitav Markdown plokk. Viimases koodiplokis kasutame eelnevalt defineeritud <code class=\"docutils literal notranslate\"><span class=\"pre\">result<\/span><\/code> muutujat, et arvutada uus tulemus <code class=\"docutils literal notranslate\"><span class=\"pre\">new_result<\/span><\/code>.\r\n\r\nMiks see on hea, et saame muutujaid selliselt talletada ja hiljem uuesti kasutada? Kui n\u00e4iteks masin\u00f5ppe \u00fclesandes v\u00f5tab m\u00f5ne mudeli treenimine aega 2 tundi, siis kui see on \u00fche korra v\u00e4lja arvutatud, saame seda j\u00e4rgmistes plokkides kasutada. Proovime sellega k\u00f5igepealt \u00fchte asja teha, seej\u00e4rel j\u00e4rgmist jne. Tavap\u00e4raselt koodi puhul peaksime peale koodi muutmist kogu programmi uuesti k\u00e4ima panema ja seel\u00e4bi treenitakse mudelit uuesti 2 tundi.\r\n\r\n<\/section><\/section><section id=\"jupyter-notebook\">\r\n<h2 id=\"jupyter-notebook\">Jupyter Notebook<a class=\"headerlink\" title=\"Permalink to this heading\" href=\"#jupyter-notebook\">\uf0c1<\/a><\/h2>\r\nSee on vanem versioon Jupyter tarkvarast. Kui JupyterLab toimib, siis v\u00f5ib selles osas kirjutatu vahele j\u00e4tta (sisuliselt teeme sama asja l\u00e4bi).\r\n\r\n<section id=\"jupyter-notebooki-installimine\">\r\n<h3 id=\"jupyter-notebooki-installimine\">Jupyter Notebooki installimine<a class=\"headerlink\" title=\"Permalink to this heading\" href=\"#jupyter-notebooki-installimine\">\uf0c1<\/a><\/h3>\r\nKui mingil p\u00f5hjusel on soov kasutada originaalset ja lihtsamat redigeerimiskeskkonda, v\u00f5ib installida <code class=\"docutils literal notranslate\"><span class=\"pre\">jupyter<\/span><\/code> paki.\r\n\r\nInstallimiseks <code class=\"docutils literal notranslate\"><span class=\"pre\">pip<\/span><\/code> t\u00f6\u00f6riistaga tuleb kirjutada:\r\n<div class=\"highlight-text notranslate\">\r\n<div class=\"highlight\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">pip3 install jupyter\r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\nEelnev eeldab, et <code class=\"docutils literal notranslate\"><span class=\"pre\">pip<\/span><\/code> on installitud ja asub <code class=\"docutils literal notranslate\"><span class=\"pre\">PATH<\/span><\/code> muutujas (see t\u00e4hendab, et <code class=\"docutils literal notranslate\"><span class=\"pre\">pip<\/span><\/code> on k\u00e4ttesaadav suvalises asukohas k\u00e4sureal). Soovituslik on lisada Python keskkonnamuutujasse <code class=\"docutils literal notranslate\"><span class=\"pre\">PATH<\/span><\/code>, juhend selleks on siin: <a class=\"reference external\" href=\"https:\/\/docs.python.org\/3\/using\/windows.html#setting-envvars\">https:\/\/docs.python.org\/3\/using\/windows.html#setting-envvars<\/a>\r\n\r\nN\u00e4iteks kui Python on installitud kausta <code class=\"docutils literal notranslate\"><span class=\"pre\">C:\\Python\\Python310<\/span><\/code>, siis k\u00e4surealt saab installida j\u00e4rgmise k\u00e4suga:\r\n<div class=\"highlight-text notranslate\">\r\n<div class=\"highlight\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">c:\\Python\\Python310\\python.exe -m pip install jupyter\r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\nK\u00e4ivitamine Windowsi masina Bashis (Git Bash, MINGW64):\r\n<div class=\"highlight-text notranslate\">\r\n<div class=\"highlight\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">\/c\/Python\/Python310\/python.exe -m pip install jupyter\r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\n<\/section><section id=\"jupyter-notebook-serveri-kaivitamine\">\r\n<h3 id=\"jupyter-notebook-serveri-kaivitamine\">Jupyter Notebook serveri k\u00e4ivitamine<a class=\"headerlink\" title=\"Permalink to this heading\" href=\"#jupyter-notebook-serveri-kaivitamine\">\uf0c1<\/a><\/h3>\r\nKui notebook on installitud, saab serveri k\u00e4ima panna j\u00e4rgmisels:\r\n<div class=\"highlight-text notranslate\">\r\n<div class=\"highlight\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">jupyter notebook\r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\n<code class=\"docutils literal notranslate\"><span class=\"pre\">jupyter<\/span><\/code> installitakse Pythoni kaustas <code class=\"docutils literal notranslate\"><span class=\"pre\">Scripts<\/span><\/code> kausta. N\u00e4iteks k\u00e4ivitamine Windowsi k\u00e4sureal (kui Python pole keskkonnamuutujas <code class=\"docutils literal notranslate\"><span class=\"pre\">PATH<\/span><\/code>):\r\n<div class=\"highlight-text notranslate\">\r\n<div class=\"highlight\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">c:\\Python\\Python310\\Scripts\\jupyter.exe notebook\r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\nV\u00f5i k\u00e4ivitamine Windowsis Bashsis konkreetsest asukohast:\r\n<div class=\"highlight-text notranslate\">\r\n<div class=\"highlight\">\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">\/c\/Python\/Python310\/Scripts\/jupyter notebook\r\n<\/pre>\r\n<\/div>\r\n<\/div>\r\nSee k\u00e4ivitab Jupyter serveri aktiivses kaustas ning peaks avanema brauser. Brauseris n\u00e4idatakse aktiivses kaustas olevadi kaustu ja faile. Seal on v\u00f5imalik navigeerida kaustade vahel. Sobivasse kohta saab luua uue faili. Selleks saab paremal klikkida \"New\" ja sealt valida \"Notebook Python 3\".\r\n\r\n<img class=\"alignnone size-large wp-image-898\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/new_notebook-1024x255.png\" alt=\"Jupyter Notebook uus fail\" width=\"1024\" height=\"255\" \/>\r\n\r\nLuuakse ipynb-laiendiga fail. Notebook fail koosneb koodi ja teksti plokkidest. Koodiplokk toetab Pythoni jooksutamist (teatud variantide puhul ka muid skripte), tekstiplokk toetab Markdown vormindamist. Markdowni s\u00fcntaksi kohta v\u00f5ib t\u00e4psemalt lugeda <a class=\"reference external\" href=\"https:\/\/www.markdownguide.org\/basic-syntax\/\">seda<\/a>. Tegemist on suhteliselt lihtsa ja populaarse tekstivormindamise s\u00fcntaksiga, mis toetab k\u00f5iki peamisi vorminguid: <strong>rasvane kiri<\/strong>, <em>kaldkiri<\/em>, nimistud (<em>bulleted list<\/em>), lingid, pildid jne.\r\n\r\nKoodiplokke saab \u00fckshaava k\u00e4ivitada. K\u00e4ivitatud ploki tulemus (muutujad jms) j\u00e4\u00e4vad programmi m\u00e4llu. Seega kui esimeses plokis defineerida muutuja, saab seda m\u00f5nes j\u00e4rgmises plokis kasutada.\r\n\r\n<img class=\"alignnone size-large wp-image-899\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/notebook_demo-1024x377.png\" alt=\"Jupyter Notebook koodiplokk ja tekstiplokk\" width=\"1024\" height=\"377\" \/>\r\n\r\nSisu kirjutades saame plussm\u00e4rgiga (rohelise ringiga t\u00e4histatud eelneva pildi peal) lisada uusi plokke. Ja ploki t\u00fc\u00fcpi saame muuta valikust (sinise ovaaliga t\u00e4histatud). Siin n\u00e4ites l\u00f5ime k\u00f5igepealt \u00fche matemaatilise tehte (mida Python oskab arvutada): <code class=\"docutils literal notranslate\"><span class=\"pre\">1<\/span> <span class=\"pre\">+<\/span> <span class=\"pre\">2<\/span><\/code>. Kui see ploki osa k\u00e4ima panna (ploki ees on k\u00e4ivitamise nupp), n\u00e4idatakse tulemust: <code class=\"docutils literal notranslate\"><span class=\"pre\">3<\/span><\/code>. Seej\u00e4rel lisasime \u00fche Markdown ploki, kuhu kirjutasime v\u00e4ikese selgituse. Seej\u00e4rel lisasime \u00fche koodiploki, kus defineerima \u00e4ra muutuja <code class=\"docutils literal notranslate\"><span class=\"pre\">result<\/span><\/code> (selle v\u00e4\u00e4rtuseks saab <code class=\"docutils literal notranslate\"><span class=\"pre\">5<\/span><\/code>). Sellele j\u00e4rgneb samuti \u00fcks selgitav Markdown plokk. Viimases koodiplokis kasutame eelnevalt defineeritud <code class=\"docutils literal notranslate\"><span class=\"pre\">result<\/span><\/code> muutujat, et arvutada uus tulemus <code class=\"docutils literal notranslate\"><span class=\"pre\">new_result<\/span><\/code>.\r\n\r\nMiks see on hea, et saame muutujaid selliselt talletada ja hiljem uuesti kasutada? Kui n\u00e4iteks masin\u00f5ppe \u00fclesandes v\u00f5tab m\u00f5ne mudeli treenimine aega 2 tundi, siis kui see on \u00fche korra v\u00e4lja arvutatud, saame seda j\u00e4rgmistes plokkides kasutada. Proovime sellega k\u00f5igepealt \u00fchte asja teha, seej\u00e4rel j\u00e4rgmist jne. Tavap\u00e4raselt koodi puhul peaksime peale koodi muutmist kogu programmi uuesti k\u00e4ima panema ja seel\u00e4bi treenitakse mudelit uuesti 2 tundi.\r\n\r\n<\/section><\/section><section id=\"jupyter-notebook-arenduskeskkonna-rakenduses\">\r\n<h2 id=\"jupyter-notebook-arenduskeskkonna-rakenduses\">Jupyter Notebook arenduskeskkonna rakenduses<a class=\"headerlink\" title=\"Permalink to this heading\" href=\"#jupyter-notebook-arenduskeskkonna-rakenduses\">\uf0c1<\/a><\/h2>\r\nArenduskeskkonna rakendus (IDE - Integrated Development Environment) lihtsustab koodi kirjutamist. PyCharm ja Visual Studio Code m\u00f5lemad toetavad ipynb-failide avamist, redigeerimist ning k\u00e4ivitamist.\r\n\r\n<\/section><section id=\"jupyter-notebook-pilves\">\r\n<h2 id=\"jupyter-notebook-pilves\">Jupyter Notebook pilves<a class=\"headerlink\" title=\"Permalink to this heading\" href=\"#jupyter-notebook-pilves\">\uf0c1<\/a><\/h2>\r\nV\u00e4ga tavaline on jooksutada mahukamaid arvutusi pilves, kus n\u00e4iteks on rohkem m\u00e4lu, protsessori j\u00f5udlust v\u00f5i ka graafikakaardi j\u00f5udlust. Selle jaoks on hea kasutada samamoodi Jupyter Notebooki. Kohti, kus saab selliselt koodi jooksutada, on mitmeid. Teatud mahus ja piiratud ressurssidega on seda v\u00f5imalik teha t\u00e4itsa tasuta.\r\n\r\n\u00dcks selline v\u00f5imalik platvorm on <a class=\"reference external\" href=\"https:\/\/colab.research.google.com\/\">Google Colab<\/a>. Teine selline on <a class=\"reference external\" href=\"https:\/\/www.kaggle.com\/\">Kaggle<\/a>.\r\n<div class=\"admonition-harjutus admonition\">\r\n<div class=\"textbox textbox--exercises\"><header class=\"textbox__header\">\r\n<p class=\"textbox__title\">Harjutus<\/p>\r\n\r\n<\/header>\r\n<div class=\"textbox__content\">Proovi luua n\u00e4iteks Google Colab keskkonda uus Jupyteri fail, kus kasutad erinevaid koodi- ja tekstiplokke. Saad alustada siit: <a class=\"reference external\" href=\"https:\/\/colab.research.google.com\/\">https:\/\/colab.research.google.com\/<\/a> . Samalt lehelt saad proovida kopeerida n\u00e4iteks graafiku joonistamise koodijupi.<\/div>\r\n<\/div>\r\n<div class=\"textbox textbox--exercises\"><header class=\"textbox__header\">\r\n<p class=\"textbox__title\">Harjutus<\/p>\r\n\r\n<\/header>\r\n<div class=\"textbox__content\">Loo Google Drive kausta teksti- v\u00f5i pildifail, mida proovida Jupyteri failis lugeda. Vaata n\u00e4iteid siit: <a class=\"reference external\" href=\"https:\/\/colab.research.google.com\/notebooks\/io.ipynb\">https:\/\/colab.research.google.com\/notebooks\/io.ipynb<\/a><\/div>\r\n<\/div>\r\n<\/div>\r\n<\/section><section id=\"viiteid\">\r\n<h2 id=\"viiteid\">Viiteid<a class=\"headerlink\" title=\"Permalink to this heading\" href=\"#viiteid\">\uf0c1<\/a><\/h2>\r\n<ul class=\"simple\">\r\n \t<li><a class=\"reference external\" href=\"https:\/\/www.kaggle.com\/code\/jhoward\/jupyter-notebook-101\/notebook\">https:\/\/www.kaggle.com\/code\/jhoward\/jupyter-notebook-101\/notebook<\/a> - Jupyter Notebook kasutamise n\u00e4ited.<\/li>\r\n \t<li><a class=\"reference external\" href=\"https:\/\/www.blog.pythonlibrary.org\/2021\/09\/19\/python-101-an-intro-to-jupyter-notebook\/\">https:\/\/www.blog.pythonlibrary.org\/2021\/09\/19\/python-101-an-intro-to-jupyter-notebook\/<\/a> - Veel Jupyter Notebook kasutamise n\u00e4iteid.<\/li>\r\n<\/ul>\r\n<\/section>","rendered":"<h1 id=\"jupyter-jupyter--page-root\">JupyterLab \/ Jupyter Notebook<a class=\"headerlink\" title=\"Permalink to this heading\" href=\"#jupyter-jupyter--page-root\">\uf0c1<\/a><\/h1>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-897\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/logo-300x158.png\" alt=\"Jupyter logo\" width=\"300\" height=\"158\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/logo-300x158.png 300w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/logo-1024x538.png 1024w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/logo-768x403.png 768w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/logo-65x34.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/logo-225x118.png 225w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/logo-350x184.png 350w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/logo.png 1200w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>Jupyter Notebook on t\u00f6\u00f6vahend, millega saab arendada ja esitleda erinevaid (andme)teaduse projekte. Sisuliselt on selles v\u00f5imalik kirjutada Pythoni koodi ja esitleda tavalist teksti. N\u00e4iteks saab tuua m\u00f5ne koodin\u00e4ite ja n\u00e4itele juurde lisada selgitavat teksti, pilte jms. Pythoni koodi saab ka jooksutada ning n\u00e4ha tulemust.<\/p>\n<p>Jupyter Notebook&#8217;i saab kasutada l\u00e4bi veebibrauseri. See v\u00f5ib jooksutada koodi kas kasutaja enda arvutis v\u00f5i m\u00f5nes serveri pilves. See on just \u00fcks v\u00e4ga hea omadus, et ressursin\u00f5udlikke programme saab jooksutada pilves. N\u00e4iteks m\u00f5ned masin\u00f5ppe algoritmid v\u00f5ivad t\u00f6\u00f6tada mitmeid tunde ning vajada v\u00e4ga v\u00f5imsaid arvuteid.<\/p>\n<p>JupyterLab on arenduskeskkond veebibrauseris Notebooki faili loomiseks. Jupyter Notebook originaalrakendus v\u00f5imaldab faile redigeerida ja k\u00e4ivitada, JupyterLab annab selleks rohkem v\u00f5imalusi. L\u00f5puks loodav ipynb-fail on m\u00f5lema lahendusega sama (ja saab k\u00e4ivitada \u00fcksk\u00f5ik millisel Jupyter platvormil).<\/p>\n<p>Vaatame j\u00e4rgnevalt nii JupyterLab kui ka Jupyter Notebook installimist ja kasutamist. M\u00f5lemad on saadaval siin: <a class=\"reference external\" href=\"https:\/\/jupyter.org\/\">https:\/\/jupyter.org\/<\/a><\/p>\n<section id=\"jupyterlab\">\n<h2 id=\"jupyterlab\">JupyterLab<a class=\"headerlink\" title=\"Permalink to this heading\" href=\"#jupyterlab\">\uf0c1<\/a><\/h2>\n<p>JupyterLab on t\u00e4iustatud versioon Jupyter Notebook rakendusest. veebibrauseris avanev tekstiredaktor on mugavam ja annab rohkem v\u00f5imalusi. See meenutab rohkem tavaliset IDE (Integrated Development Environment) kasutamist. L\u00f5puks loodav ipynb-fail on t\u00e4pselt sama nagu Notebookiga loodav.<\/p>\n<section id=\"jupyterlab-i-installimine\">\n<h3 id=\"jupyterlab-i-installimine\">JupyterLab&#8217;i installimine<a class=\"headerlink\" title=\"Permalink to this heading\" href=\"#jupyterlab-i-installimine\">\uf0c1<\/a><\/h3>\n<p>Installimiseks <code class=\"docutils literal notranslate\"><span class=\"pre\">pip<\/span><\/code> t\u00f6\u00f6riistaga tuleb kirjutada:<\/p>\n<p>&nbsp;<\/p>\n<div class=\"highlight-text notranslate\">\n<div class=\"highlight\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">pip3 install jupyterlab\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Eelnev eeldab, et <code class=\"docutils literal notranslate\"><span class=\"pre\">pip<\/span><\/code> on installitud ja asub <code class=\"docutils literal notranslate\"><span class=\"pre\">PATH<\/span><\/code> muutujas (see t\u00e4hendab, et <code class=\"docutils literal notranslate\"><span class=\"pre\">pip<\/span><\/code> on k\u00e4ttesaadav suvalises asukohas k\u00e4sureal). Soovituslik on lisada Python keskkonnamuutujasse <code class=\"docutils literal notranslate\"><span class=\"pre\">PATH<\/span><\/code>, juhend selleks on siin: <a class=\"reference external\" href=\"https:\/\/docs.python.org\/3\/using\/windows.html#setting-envvars\">https:\/\/docs.python.org\/3\/using\/windows.html#setting-envvars<\/a><\/p>\n<p>N\u00e4iteks kui Python on installitud kausta <code class=\"docutils literal notranslate\"><span class=\"pre\">C:\\Python\\Python310<\/span><\/code>, siis k\u00e4surealt saab installida j\u00e4rgmise k\u00e4suga:<\/p>\n<div class=\"highlight-text notranslate\">\n<div class=\"highlight\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">c:\\Python\\Python310\\python.exe -m pip install jupyterlab\r\n<\/pre>\n<\/div>\n<\/div>\n<p>K\u00e4ivitamine Windowsi masina Bashis (Git Bash, MINGW64):<\/p>\n<div class=\"highlight-text notranslate\">\n<div class=\"highlight\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">\/c\/Python\/Python310\/python.exe -m pip install jupyterlab\r\n<\/pre>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"jupyterlab-serveri-kaivitamine\">\n<h3 id=\"jupyterlab-serveri-kaivitamine\">JupyterLab serveri k\u00e4ivitamine<a class=\"headerlink\" title=\"Permalink to this heading\" href=\"#jupyterlab-serveri-kaivitamine\">\uf0c1<\/a><\/h3>\n<p>Kui JupyterLab on installitud, saab serveri k\u00e4ima panna j\u00e4rgmisels:<\/p>\n<div class=\"highlight-text notranslate\">\n<div class=\"highlight\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">jupyter-lab\r\n<\/pre>\n<\/div>\n<\/div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">jupyter-lab<\/span><\/code> installitakse Pythoni kaustas <code class=\"docutils literal notranslate\"><span class=\"pre\">Scripts<\/span><\/code> kausta. N\u00e4iteks k\u00e4ivitamine Windowsi k\u00e4sureal (kui Python pole keskkonnamuutujas <code class=\"docutils literal notranslate\"><span class=\"pre\">PATH<\/span><\/code>):<\/p>\n<div class=\"highlight-text notranslate\">\n<div class=\"highlight\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">c:\\Python\\Python310\\Scripts\\jupyter-lab.exe\r\n<\/pre>\n<\/div>\n<\/div>\n<p>V\u00f5i k\u00e4ivitamine Windowsis Bashsis konkreetsest asukohast:<\/p>\n<div class=\"highlight-text notranslate\">\n<div class=\"highlight\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">\/c\/Python\/Python310\/Scripts\/jupyter-lab\r\n<\/pre>\n<\/div>\n<\/div>\n<p>See k\u00e4ivitab JupyterLab serveri aktiivses kaustas ning peaks avanema brauser. Brauseris n\u00e4idatakse aktiivses kaustas olevadi kaustu ja faile. Seal on v\u00f5imalik navigeerida kaustade vahel. Sobivasse kohta saab luua uue faili. Selleks saab paremal osas valida Notebook sektsiooni alt Python 3.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-896\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/lab_new-1024x628.png\" alt=\"JupyterLab uus fail\" width=\"1024\" height=\"628\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/lab_new-1024x628.png 1024w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/lab_new-300x184.png 300w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/lab_new-768x471.png 768w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/lab_new-1536x941.png 1536w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/lab_new-2048x1255.png 2048w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/lab_new-65x40.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/lab_new-225x138.png 225w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/lab_new-350x215.png 350w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>Luuakse ipynb-laiendiga fail. Notebook fail koosneb koodi ja teksti plokkidest. Koodiplokk toetab Pythoni jooksutamist (teatud variantide puhul ka muid skripte), tekstiplokk toetab Markdown vormindamist. Markdowni s\u00fcntaksi kohta v\u00f5ib t\u00e4psemalt lugeda <a class=\"reference external\" href=\"https:\/\/www.markdownguide.org\/basic-syntax\/\">seda<\/a>. Tegemist on suhteliselt lihtsa ja populaarse tekstivormindamise s\u00fcntaksiga, mis toetab k\u00f5iki peamisi vorminguid: <strong>rasvane kiri<\/strong>, <em>kaldkiri<\/em>, nimistud (<em>bulleted list<\/em>), lingid, pildid jne.<\/p>\n<p>Koodiplokke saab \u00fckshaava k\u00e4ivitada. K\u00e4ivitatud ploki tulemus (muutujad jms) j\u00e4\u00e4vad programmi m\u00e4llu. Seega kui esimeses plokis defineerida muutuja, saab seda m\u00f5nes j\u00e4rgmises plokis kasutada.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-895\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/lab_demo-1024x340.png\" alt=\"JupyterLab koodiplokk ja tekstiplokk\" width=\"1024\" height=\"340\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/lab_demo-1024x340.png 1024w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/lab_demo-300x100.png 300w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/lab_demo-768x255.png 768w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/lab_demo-1536x510.png 1536w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/lab_demo-2048x681.png 2048w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/lab_demo-65x22.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/lab_demo-225x75.png 225w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/lab_demo-350x116.png 350w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>Sisu kirjutades saame plussm\u00e4rgiga (rohelise ringiga t\u00e4histatud eelneva pildi peal) lisada uusi plokke. Ja ploki t\u00fc\u00fcpi saame muuta valikust (sinise ovaaliga t\u00e4histatud). Siin n\u00e4ites l\u00f5ime k\u00f5igepealt \u00fche matemaatilise tehte (mida Python oskab arvutada): <code class=\"docutils literal notranslate\"><span class=\"pre\">1<\/span> <span class=\"pre\">+<\/span> <span class=\"pre\">2<\/span><\/code>. Kui see ploki osa k\u00e4ima panna (ploki ees on k\u00e4ivitamise nupp), n\u00e4idatakse tulemust: <code class=\"docutils literal notranslate\"><span class=\"pre\">3<\/span><\/code>. Seej\u00e4rel lisasime \u00fche Markdown ploki, kuhu kirjutasime v\u00e4ikese selgituse. Seej\u00e4rel lisasime \u00fche koodiploki, kus defineerima \u00e4ra muutuja <code class=\"docutils literal notranslate\"><span class=\"pre\">result<\/span><\/code> (selle v\u00e4\u00e4rtuseks saab <code class=\"docutils literal notranslate\"><span class=\"pre\">5<\/span><\/code>). Sellele j\u00e4rgneb samuti \u00fcks selgitav Markdown plokk. Viimases koodiplokis kasutame eelnevalt defineeritud <code class=\"docutils literal notranslate\"><span class=\"pre\">result<\/span><\/code> muutujat, et arvutada uus tulemus <code class=\"docutils literal notranslate\"><span class=\"pre\">new_result<\/span><\/code>.<\/p>\n<p>Miks see on hea, et saame muutujaid selliselt talletada ja hiljem uuesti kasutada? Kui n\u00e4iteks masin\u00f5ppe \u00fclesandes v\u00f5tab m\u00f5ne mudeli treenimine aega 2 tundi, siis kui see on \u00fche korra v\u00e4lja arvutatud, saame seda j\u00e4rgmistes plokkides kasutada. Proovime sellega k\u00f5igepealt \u00fchte asja teha, seej\u00e4rel j\u00e4rgmist jne. Tavap\u00e4raselt koodi puhul peaksime peale koodi muutmist kogu programmi uuesti k\u00e4ima panema ja seel\u00e4bi treenitakse mudelit uuesti 2 tundi.<\/p>\n<\/section>\n<\/section>\n<section id=\"jupyter-notebook\">\n<h2 id=\"jupyter-notebook\">Jupyter Notebook<a class=\"headerlink\" title=\"Permalink to this heading\" href=\"#jupyter-notebook\">\uf0c1<\/a><\/h2>\n<p>See on vanem versioon Jupyter tarkvarast. Kui JupyterLab toimib, siis v\u00f5ib selles osas kirjutatu vahele j\u00e4tta (sisuliselt teeme sama asja l\u00e4bi).<\/p>\n<section id=\"jupyter-notebooki-installimine\">\n<h3 id=\"jupyter-notebooki-installimine\">Jupyter Notebooki installimine<a class=\"headerlink\" title=\"Permalink to this heading\" href=\"#jupyter-notebooki-installimine\">\uf0c1<\/a><\/h3>\n<p>Kui mingil p\u00f5hjusel on soov kasutada originaalset ja lihtsamat redigeerimiskeskkonda, v\u00f5ib installida <code class=\"docutils literal notranslate\"><span class=\"pre\">jupyter<\/span><\/code> paki.<\/p>\n<p>Installimiseks <code class=\"docutils literal notranslate\"><span class=\"pre\">pip<\/span><\/code> t\u00f6\u00f6riistaga tuleb kirjutada:<\/p>\n<div class=\"highlight-text notranslate\">\n<div class=\"highlight\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">pip3 install jupyter\r\n<\/pre>\n<\/div>\n<\/div>\n<p>Eelnev eeldab, et <code class=\"docutils literal notranslate\"><span class=\"pre\">pip<\/span><\/code> on installitud ja asub <code class=\"docutils literal notranslate\"><span class=\"pre\">PATH<\/span><\/code> muutujas (see t\u00e4hendab, et <code class=\"docutils literal notranslate\"><span class=\"pre\">pip<\/span><\/code> on k\u00e4ttesaadav suvalises asukohas k\u00e4sureal). Soovituslik on lisada Python keskkonnamuutujasse <code class=\"docutils literal notranslate\"><span class=\"pre\">PATH<\/span><\/code>, juhend selleks on siin: <a class=\"reference external\" href=\"https:\/\/docs.python.org\/3\/using\/windows.html#setting-envvars\">https:\/\/docs.python.org\/3\/using\/windows.html#setting-envvars<\/a><\/p>\n<p>N\u00e4iteks kui Python on installitud kausta <code class=\"docutils literal notranslate\"><span class=\"pre\">C:\\Python\\Python310<\/span><\/code>, siis k\u00e4surealt saab installida j\u00e4rgmise k\u00e4suga:<\/p>\n<div class=\"highlight-text notranslate\">\n<div class=\"highlight\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">c:\\Python\\Python310\\python.exe -m pip install jupyter\r\n<\/pre>\n<\/div>\n<\/div>\n<p>K\u00e4ivitamine Windowsi masina Bashis (Git Bash, MINGW64):<\/p>\n<div class=\"highlight-text notranslate\">\n<div class=\"highlight\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">\/c\/Python\/Python310\/python.exe -m pip install jupyter\r\n<\/pre>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"jupyter-notebook-serveri-kaivitamine\">\n<h3 id=\"jupyter-notebook-serveri-kaivitamine\">Jupyter Notebook serveri k\u00e4ivitamine<a class=\"headerlink\" title=\"Permalink to this heading\" href=\"#jupyter-notebook-serveri-kaivitamine\">\uf0c1<\/a><\/h3>\n<p>Kui notebook on installitud, saab serveri k\u00e4ima panna j\u00e4rgmisels:<\/p>\n<div class=\"highlight-text notranslate\">\n<div class=\"highlight\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">jupyter notebook\r\n<\/pre>\n<\/div>\n<\/div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">jupyter<\/span><\/code> installitakse Pythoni kaustas <code class=\"docutils literal notranslate\"><span class=\"pre\">Scripts<\/span><\/code> kausta. N\u00e4iteks k\u00e4ivitamine Windowsi k\u00e4sureal (kui Python pole keskkonnamuutujas <code class=\"docutils literal notranslate\"><span class=\"pre\">PATH<\/span><\/code>):<\/p>\n<div class=\"highlight-text notranslate\">\n<div class=\"highlight\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">c:\\Python\\Python310\\Scripts\\jupyter.exe notebook\r\n<\/pre>\n<\/div>\n<\/div>\n<p>V\u00f5i k\u00e4ivitamine Windowsis Bashsis konkreetsest asukohast:<\/p>\n<div class=\"highlight-text notranslate\">\n<div class=\"highlight\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\">\/c\/Python\/Python310\/Scripts\/jupyter notebook\r\n<\/pre>\n<\/div>\n<\/div>\n<p>See k\u00e4ivitab Jupyter serveri aktiivses kaustas ning peaks avanema brauser. Brauseris n\u00e4idatakse aktiivses kaustas olevadi kaustu ja faile. Seal on v\u00f5imalik navigeerida kaustade vahel. Sobivasse kohta saab luua uue faili. Selleks saab paremal klikkida &#8220;New&#8221; ja sealt valida &#8220;Notebook Python 3&#8221;.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-898\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/new_notebook-1024x255.png\" alt=\"Jupyter Notebook uus fail\" width=\"1024\" height=\"255\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/new_notebook-1024x255.png 1024w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/new_notebook-300x75.png 300w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/new_notebook-768x191.png 768w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/new_notebook-1536x382.png 1536w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/new_notebook-2048x510.png 2048w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/new_notebook-65x16.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/new_notebook-225x56.png 225w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/new_notebook-350x87.png 350w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>Luuakse ipynb-laiendiga fail. Notebook fail koosneb koodi ja teksti plokkidest. Koodiplokk toetab Pythoni jooksutamist (teatud variantide puhul ka muid skripte), tekstiplokk toetab Markdown vormindamist. Markdowni s\u00fcntaksi kohta v\u00f5ib t\u00e4psemalt lugeda <a class=\"reference external\" href=\"https:\/\/www.markdownguide.org\/basic-syntax\/\">seda<\/a>. Tegemist on suhteliselt lihtsa ja populaarse tekstivormindamise s\u00fcntaksiga, mis toetab k\u00f5iki peamisi vorminguid: <strong>rasvane kiri<\/strong>, <em>kaldkiri<\/em>, nimistud (<em>bulleted list<\/em>), lingid, pildid jne.<\/p>\n<p>Koodiplokke saab \u00fckshaava k\u00e4ivitada. K\u00e4ivitatud ploki tulemus (muutujad jms) j\u00e4\u00e4vad programmi m\u00e4llu. Seega kui esimeses plokis defineerida muutuja, saab seda m\u00f5nes j\u00e4rgmises plokis kasutada.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-899\" src=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/notebook_demo-1024x377.png\" alt=\"Jupyter Notebook koodiplokk ja tekstiplokk\" width=\"1024\" height=\"377\" srcset=\"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/notebook_demo-1024x377.png 1024w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/notebook_demo-300x111.png 300w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/notebook_demo-768x283.png 768w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/notebook_demo-1536x566.png 1536w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/notebook_demo-2048x754.png 2048w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/notebook_demo-65x24.png 65w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/notebook_demo-225x83.png 225w, https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-content\/uploads\/sites\/18\/2023\/01\/notebook_demo-350x129.png 350w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>Sisu kirjutades saame plussm\u00e4rgiga (rohelise ringiga t\u00e4histatud eelneva pildi peal) lisada uusi plokke. Ja ploki t\u00fc\u00fcpi saame muuta valikust (sinise ovaaliga t\u00e4histatud). Siin n\u00e4ites l\u00f5ime k\u00f5igepealt \u00fche matemaatilise tehte (mida Python oskab arvutada): <code class=\"docutils literal notranslate\"><span class=\"pre\">1<\/span> <span class=\"pre\">+<\/span> <span class=\"pre\">2<\/span><\/code>. Kui see ploki osa k\u00e4ima panna (ploki ees on k\u00e4ivitamise nupp), n\u00e4idatakse tulemust: <code class=\"docutils literal notranslate\"><span class=\"pre\">3<\/span><\/code>. Seej\u00e4rel lisasime \u00fche Markdown ploki, kuhu kirjutasime v\u00e4ikese selgituse. Seej\u00e4rel lisasime \u00fche koodiploki, kus defineerima \u00e4ra muutuja <code class=\"docutils literal notranslate\"><span class=\"pre\">result<\/span><\/code> (selle v\u00e4\u00e4rtuseks saab <code class=\"docutils literal notranslate\"><span class=\"pre\">5<\/span><\/code>). Sellele j\u00e4rgneb samuti \u00fcks selgitav Markdown plokk. Viimases koodiplokis kasutame eelnevalt defineeritud <code class=\"docutils literal notranslate\"><span class=\"pre\">result<\/span><\/code> muutujat, et arvutada uus tulemus <code class=\"docutils literal notranslate\"><span class=\"pre\">new_result<\/span><\/code>.<\/p>\n<p>Miks see on hea, et saame muutujaid selliselt talletada ja hiljem uuesti kasutada? Kui n\u00e4iteks masin\u00f5ppe \u00fclesandes v\u00f5tab m\u00f5ne mudeli treenimine aega 2 tundi, siis kui see on \u00fche korra v\u00e4lja arvutatud, saame seda j\u00e4rgmistes plokkides kasutada. Proovime sellega k\u00f5igepealt \u00fchte asja teha, seej\u00e4rel j\u00e4rgmist jne. Tavap\u00e4raselt koodi puhul peaksime peale koodi muutmist kogu programmi uuesti k\u00e4ima panema ja seel\u00e4bi treenitakse mudelit uuesti 2 tundi.<\/p>\n<\/section>\n<\/section>\n<section id=\"jupyter-notebook-arenduskeskkonna-rakenduses\">\n<h2 id=\"jupyter-notebook-arenduskeskkonna-rakenduses\">Jupyter Notebook arenduskeskkonna rakenduses<a class=\"headerlink\" title=\"Permalink to this heading\" href=\"#jupyter-notebook-arenduskeskkonna-rakenduses\">\uf0c1<\/a><\/h2>\n<p>Arenduskeskkonna rakendus (IDE &#8211; Integrated Development Environment) lihtsustab koodi kirjutamist. PyCharm ja Visual Studio Code m\u00f5lemad toetavad ipynb-failide avamist, redigeerimist ning k\u00e4ivitamist.<\/p>\n<\/section>\n<section id=\"jupyter-notebook-pilves\">\n<h2 id=\"jupyter-notebook-pilves\">Jupyter Notebook pilves<a class=\"headerlink\" title=\"Permalink to this heading\" href=\"#jupyter-notebook-pilves\">\uf0c1<\/a><\/h2>\n<p>V\u00e4ga tavaline on jooksutada mahukamaid arvutusi pilves, kus n\u00e4iteks on rohkem m\u00e4lu, protsessori j\u00f5udlust v\u00f5i ka graafikakaardi j\u00f5udlust. Selle jaoks on hea kasutada samamoodi Jupyter Notebooki. Kohti, kus saab selliselt koodi jooksutada, on mitmeid. Teatud mahus ja piiratud ressurssidega on seda v\u00f5imalik teha t\u00e4itsa tasuta.<\/p>\n<p>\u00dcks selline v\u00f5imalik platvorm on <a class=\"reference external\" href=\"https:\/\/colab.research.google.com\/\">Google Colab<\/a>. Teine selline on <a class=\"reference external\" href=\"https:\/\/www.kaggle.com\/\">Kaggle<\/a>.<\/p>\n<div class=\"admonition-harjutus admonition\">\n<div class=\"textbox textbox--exercises\">\n<header class=\"textbox__header\">\n<p class=\"textbox__title\">Harjutus<\/p>\n<\/header>\n<div class=\"textbox__content\">Proovi luua n\u00e4iteks Google Colab keskkonda uus Jupyteri fail, kus kasutad erinevaid koodi- ja tekstiplokke. Saad alustada siit: <a class=\"reference external\" href=\"https:\/\/colab.research.google.com\/\">https:\/\/colab.research.google.com\/<\/a> . Samalt lehelt saad proovida kopeerida n\u00e4iteks graafiku joonistamise koodijupi.<\/div>\n<\/div>\n<div class=\"textbox textbox--exercises\">\n<header class=\"textbox__header\">\n<p class=\"textbox__title\">Harjutus<\/p>\n<\/header>\n<div class=\"textbox__content\">Loo Google Drive kausta teksti- v\u00f5i pildifail, mida proovida Jupyteri failis lugeda. Vaata n\u00e4iteid siit: <a class=\"reference external\" href=\"https:\/\/colab.research.google.com\/notebooks\/io.ipynb\">https:\/\/colab.research.google.com\/notebooks\/io.ipynb<\/a><\/div>\n<\/div>\n<\/div>\n<\/section>\n<section id=\"viiteid\">\n<h2 id=\"viiteid\">Viiteid<a class=\"headerlink\" title=\"Permalink to this heading\" href=\"#viiteid\">\uf0c1<\/a><\/h2>\n<ul class=\"simple\">\n<li><a class=\"reference external\" href=\"https:\/\/www.kaggle.com\/code\/jhoward\/jupyter-notebook-101\/notebook\">https:\/\/www.kaggle.com\/code\/jhoward\/jupyter-notebook-101\/notebook<\/a> &#8211; Jupyter Notebook kasutamise n\u00e4ited.<\/li>\n<li><a class=\"reference external\" href=\"https:\/\/www.blog.pythonlibrary.org\/2021\/09\/19\/python-101-an-intro-to-jupyter-notebook\/\">https:\/\/www.blog.pythonlibrary.org\/2021\/09\/19\/python-101-an-intro-to-jupyter-notebook\/<\/a> &#8211; Veel Jupyter Notebook kasutamise n\u00e4iteid.<\/li>\n<\/ul>\n<\/section>\n","protected":false},"author":36,"menu_order":1,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-894","chapter","type-chapter","status-publish","hentry"],"part":784,"_links":{"self":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/894","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/users\/36"}],"version-history":[{"count":1,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/894\/revisions"}],"predecessor-version":[{"id":900,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/894\/revisions\/900"}],"part":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/parts\/784"}],"metadata":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapters\/894\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/media?parent=894"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/pressbooks\/v2\/chapter-type?post=894"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/contributor?post=894"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/web.htk.tlu.ee\/digitaru\/tarkvara2\/wp-json\/wp\/v2\/license?post=894"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}