Åtgärder

Skillnad mellan versioner av "Jupyter"

Från DAU-handboken

m
(Referenslista)
Rad 1: Rad 1:
= Snabbguide Jupyter =
= Snabbguide Jupyter =
Den här guiden beskriver i huvudsak Jupyter Notebook 6.x (LÄNK). Den kan med fördel utökas med mer information om resten av Project Jupyter.
Den här guiden beskriver i huvudsak Jupyter Notebook 6.x.<span id="ref1b"><sup>[[#ref1|[1]]]</sup></span> Den kan med fördel utökas med mer information om resten av Project Jupyter.


== Information om Jupyter ==
== Information om Jupyter ==
''Jupyter Notebook'' (tidigare IPython Notebook) är ett gränssnitt och ett filformat som ofta används för explorativ dataanalys, demonstrationer och undervisningsmaterial. Filformatet låter dig kombinera avsnitt med text, bilder och annan media med avsnitt som innehåller programkod och resultat i samma fil. Konceptet brukar kallas ''notebook interface'' eller ''computational notebook'' (LÄNK). Jupyter Notebook är öppen källkod, används av forskare inom många områden och erbjuds som molntjänst av företag och infrastrukturer som Microsoft, Google och European Open Science Cloud (EOSC-hub).  
''Jupyter Notebook'' (tidigare IPython Notebook) är ett gränssnitt och ett filformat som ofta används för explorativ dataanalys, demonstrationer och undervisningsmaterial. Filformatet låter dig kombinera avsnitt med text, bilder och annan media med avsnitt som innehåller programkod och resultat i samma fil. Konceptet brukar kallas ''notebook interface'' eller ''computational notebook''.<span id="ref2b"><sup>[[#ref2|[2]]]</sup></span> Jupyter Notebook är öppen källkod, används av forskare inom många områden och erbjuds som molntjänst av företag och infrastrukturer som Microsoft, Google och European Open Science Cloud (EOSC-hub).  


Jupyter Notebook är därmed inget fristående analysverktyg utan ett redskap för att arbeta med programkod som analysverktyg eller för att presentera resultaten. Den huvudsakliga fördelen med verktyget är att kunna köra programkod på ett lättillgängligt sätt. Beskrivningar och kod läggs in i notebookfilen i en sekvens av avgränsade ''celler'', som sedan kan markeras och köras individuellt. Eventuell utmatning dyker upp under respektive cell. Jupyter fungerar på samma sätt oavsett programspråk, men för att kunna köra programkod krävs att en s.k. ''kernel'' för programspråket finns tillgänglig på datorn tillsammans med eventuella programpaket som används. Gränssnittet kan också utökas med ''widgets'' som t.ex. används för att interagera med data eller programkod.  
Jupyter Notebook är därmed inget fristående analysverktyg utan ett redskap för att arbeta med programkod som analysverktyg eller för att presentera resultaten. Den huvudsakliga fördelen med verktyget är att kunna köra programkod på ett lättillgängligt sätt. Beskrivningar och kod läggs in i notebookfilen i en sekvens av avgränsade ''celler'', som sedan kan markeras och köras individuellt. Eventuell utmatning dyker upp under respektive cell. Jupyter fungerar på samma sätt oavsett programspråk, men för att kunna köra programkod krävs att en s.k. ''kernel'' för programspråket finns tillgänglig på datorn tillsammans med eventuella programpaket som används.<span id="ref3b"><sup>[[#ref3|[3]]]</sup></span> Gränssnittet kan också utökas med ''widgets'' som t.ex. används för att interagera med data eller programkod.<span id="ref4b"><sup>[[#ref4|[4]]]</sup></span>


Jupyter Notebook är ett delprojekt i det större Project Jupyter (LÄNK). Ett annat sådant är JupyterLab, som är en vidareutveckling och framtida ersättare för gränssnittet till Jupyter Notebook (LÄNK). JupyterLab öppnar och skriver samma filformat som Jupyter Notebook.  
Jupyter Notebook är ett delprojekt i det större Project Jupyter, vars namn är en sammandragning av programspråken Julia, Python och R.<span id="ref5b"><sup>[[#ref5|[5]]]</sup></span>  Ett annat delprojekt är JupyterLab, som är en vidareutveckling och framtida ersättare för gränssnittet till Jupyter Notebook.<span id="ref6b"><sup>[[#ref6|[6]]]</sup></span> JupyterLab öppnar och skriver samma filformat som Jupyter Notebook.  


JupyterHub är en serverprogramvara som gör Jupyter Notebook och/eller JupyterLab med kernels och widgets tillgänglig för användare över internet (LÄNK).  
JupyterHub är en serverprogramvara som gör Jupyter Notebook och/eller JupyterLab med kernels och widgets tillgänglig för användare över internet.<span id="ref7b"><sup>[[#ref7|[7]]]</sup></span>


Ett enkelt sätt att hämta Jupyter Notebook är som en del av den Python- och R-baserade programsviten Anaconda, som finns för Windows, macOS och Linux (LÄNK).  
Ett enkelt sätt att hämta Jupyter Notebook är som en del av den Python- och R-baserade programsviten Anaconda, som finns för Windows, macOS och Linux.<span id="ref8b"><sup>[[#ref8|[8]]]</sup></span> 


== Lathund ==
== Lathund ==
Rad 24: Rad 24:
Eftersom Jupyter utvecklats i programspråket Python finns alltid en kernel för Python 3.x tillgänglig. Du kan behöva konfigurera eller installera en annan kernel om programkoden är skriven i ett annat programspråk eller om den förutsätter att vissa programpaket finns installerade. Detta är dock något som du sköter utanför Jupyter Notebook, med hjälp av pakethanterare eller installationsprogram.  
Eftersom Jupyter utvecklats i programspråket Python finns alltid en kernel för Python 3.x tillgänglig. Du kan behöva konfigurera eller installera en annan kernel om programkoden är skriven i ett annat programspråk eller om den förutsätter att vissa programpaket finns installerade. Detta är dock något som du sköter utanför Jupyter Notebook, med hjälp av pakethanterare eller installationsprogram.  


Det är också möjligt att öppna och arbeta i en Jupyter Notebook som finns på en annan server eller molntjänst. Du interagerar då i webbläsaren med notebooken, men all kod körs på servern. Detta kan vara en fördel då man vill tillgängliggöra en färdig miljö som användaren kan jobba i direkt utan att behöva installera extramjukvara på egen dator eller lagra datasets lokalt. En vanlig sådan lösning är fleranvändarservern JupyterHub (LÄNK) eller den tidigare varianten Binder (LÄNK), och det finns ett urval av molntjänster för att arbeta på detta sätt.
Det är också möjligt att öppna och arbeta i en Jupyter Notebook som finns på en annan server eller molntjänst. Du interagerar då i webbläsaren med notebooken, men all kod körs på servern. Detta kan vara en fördel då man vill tillgängliggöra en färdig miljö som användaren kan jobba i direkt utan att behöva installera extramjukvara på egen dator eller lagra datasets lokalt. En vanlig sådan lösning är fleranvändarservern JupyterHub (se ovan) eller den tidigare varianten Binder,<span id="ref9b"><sup>[[#ref9|[9]]]</sup></span>  och det finns ett urval av molntjänster för att arbeta på detta sätt.


=== Dokumentationsmöjligheter ===
=== Dokumentationsmöjligheter ===
En Jupyter Notebook utgör i sig ofta en del av dokumentationen av en analys eller ett projekt. Den information i notebookfilen som inte är programkod utan t.ex. förklaringar och beskrivningar byggs upp med hjälp av ett standardiserat märkspråk, '''Markdown''' (LÄNK). Detta är utformat för att vara intuitivt och kan t.ex. jämföras med wikitext. Det går också att använda sig av LaTeX-syntax för att t.ex. generera formler och liknande notation i cellerna.  
En Jupyter Notebook utgör i sig ofta en del av dokumentationen av en analys eller ett projekt. Den information i notebookfilen som inte är programkod utan t.ex. förklaringar och beskrivningar byggs upp med hjälp av ett standardiserat märkspråk, '''Markdown'''.<span id="ref10b"><sup>[[#ref10|[10]]]</sup></span> Detta är utformat för att vara intuitivt och kan t.ex. jämföras med wikitext. Det går också att använda sig av LaTeX-syntax för att t.ex. generera formler och liknande notation i cellerna.  


Det kanske viktigaste att dokumentera om själva Jupyter Notebook-filen är de olika beroenden som finns till andra entiteter. Detta kan röra sig om programspråk och kernels, programbibliotek som anropas, eller olika verktyg på datorn som används för t.ex. nedladdning, filhantering eller konvertering. En tydlig redogörelse för vilken mjukvara som används och vilka versioner av denna som krävs behöver därför finnas med i dokumentationen, kanske som en readme-fil.  
Det kanske viktigaste att dokumentera om själva Jupyter Notebook-filen är de olika beroenden som finns till andra entiteter. Detta kan röra sig om programspråk och kernels, programbibliotek som anropas, eller olika verktyg på datorn som används för t.ex. nedladdning, filhantering eller konvertering när notebooken körs. En tydlig redogörelse för vilken mjukvara som används och vilka versioner av denna som krävs behöver därför finnas med i dokumentationen, t.ex. som en readme-fil.  


I de fall som data för analysen eller annat material länkas eller hämtas in genom URL:er eller API-anrop är det eftersträvansvärt att använda olika typer av persistenta adresser och identifierare. Om möjligt bör också kontaktuppgifter och ansvariga för det externa materialet finnas med i dokumentationen utifall att det inte längre skulle gå att komma åt.
I de fall som data för analysen eller annat material länkas eller hämtas in genom URL:er eller API-anrop är det eftersträvansvärt att använda olika typer av persistenta adresser och identifierare. Om möjligt bör också kontaktuppgifter till ansvariga för det externa materialet finnas med i dokumentationen utifall att det inte längre skulle gå att komma åt på anvisat sätt.


=== Filtyper som stöds i Jupyter  ===
=== Filtyper som stöds i Jupyter  ===


==== Filformatet IPyNB ====
==== Filformatet IPyNB ====
Jupyter Notebook 6.x använder filformatet Jupyter Notebook Format 5.x (LÄNK). Filerna är uppbyggda i JSON-format och innehåller cellerna och en beskrivning av den Kernel som används för programkoden. Skapar du checkpoints sparas dessa i en undermapp: ".ipynb_checkpoints/".
Jupyter Notebook 6.x använder filformatet Jupyter Notebook Format 5.x.<span id="ref11b"><sup>[[#ref11|[11]]]</sup></span> Filerna är uppbyggda i JSON-format och innehåller cellerna och en beskrivning av den kernel som används för programkoden. Skapar du checkpoints sparas dessa i samma format men i en undermapp: ".ipynb_checkpoints/".


* Notebook (.ipynb)  
* Notebook (.ipynb)  
Rad 49: Rad 49:


==== Export ====
==== Export ====
Det är möjligt att exportera en Jupyter Notebook till olika mer eller mindre statiska presentationsformat. Detta görs genom att välja '''Export Notebook As...''' i File-menyn. I praktiken genomförs konverteringen av det separata verktyget ''nbconvert'' (LÄNK).
Det är möjligt att exportera en Jupyter Notebook till olika mer eller mindre statiska presentationsformat. Detta görs genom att välja '''Export Notebook As...''' i File-menyn. I praktiken genomförs konverteringen av det separata verktyget ''nbconvert''.<span id="ref12b"><sup>[[#ref12|[12]]]</sup></span>


*AsciiDoc  ('''.asciidoc''')  
*AsciiDoc  ('''.asciidoc''')  
Rad 57: Rad 57:
*PDF ('''.pdf''')  
*PDF ('''.pdf''')  
*reStructuredText ('''.rst''')  
*reStructuredText ('''.rst''')  
*Reveal.js slides ('''.slides.html''')  
*Reveal.js slides ('''.slides.html''')


Det är också möjligt att exportera den samlade koden i filen till en separat källkodsfil, t.ex. '''.py''' för Pythonkod.
Det finns också ett separat verktyg vid namn ''nbviewer'' som kan användas för att skapa en webbsida utifrån en Jupyter Notebook.<span id="ref13b"><sup>[[#ref13|[13]]]</sup></span>
 
Det är möjligt att exportera den samlade koden i notebooken till en separat källkodsfil, t.ex. '''.py''' för Pythonkod. Även detta kan göras från Export-menyn.


=== Källor ===
=== Källor ===
<span id="ref1">1.</span>[[#ref1b|'''^''']] [Länkplatshållare]<br />
<span id="ref1">1.</span>[[#ref1b|'''^''']] [https://jupyter-notebook.readthedocs.io/ The Jupyter Notebook]<br />
<span id="ref2">2.</span>[[#ref2b|'''^''']] [https://en.wikipedia.org/wiki/Notebook_interface Wikipedia - Notebook interface]<br />
<span id="ref3">3.</span>[[#ref3b|'''^''']] [https://github.com/jupyter/jupyter/wiki/Jupyter-kernels Github - Jupyter kernels]<br />
<span id="ref4">4.</span>[[#ref4b|'''^''']] [https://jupyter.org/widgets Jupyter - Interactive Widgets]<br />
<span id="ref5">5.</span>[[#ref5b|'''^''']] [https://jupyter.org/ Project Jupyter]<br />
<span id="ref6">6.</span>[[#ref6b|'''^''']] [https://jupyterlab.readthedocs.io/ JupyterLab Documentation]<br />
<span id="ref7">7.</span>[[#ref7b|'''^''']] [https://jupyter.org/hub JupyterHub]<br />
<span id="ref7">7.</span>[[#ref7b|'''^''']] [https://jupyter.org/hub JupyterHub]<br />
<span id="ref8">8.</span>[[#ref8b|'''^''']] [https://www.anaconda.com/distribution/ Anaconda Distribution]<br />
<span id="ref9">9.</span>[[#ref9b|'''^''']] [https://mybinder.readthedocs.io/ Binder Documentation]<br />
<span id="ref10">10.</span>[[#ref10b|'''^''']] [https://en.wikipedia.org/wiki/Markdown Wikipedia - Markdown]<br />
<span id="ref11">11.</span>[[#ref11b|'''^''']] [https://nbformat.readthedocs.io/ The Jupyter Notebook Format]<br />
<span id="ref12">12.</span>[[#ref12b|'''^''']] [https://nbconvert.readthedocs.io/ nbconvert: Convert Notebooks to other formats]<br />
<span id="ref13">13.</span>[[#ref13b|'''^''']] [https://nbviewer.jupyter.org/ nbviewer: A simple way to share Jupyter Notebooks]<br />


=== Blandade länkar ===
=== Blandade länkar ===
https://jupyter.org/documentation <br />
https://nbviewer.jupyter.org/ <br />


-----------
-----------

Versionen från 24 januari 2020 kl. 19.59

Snabbguide Jupyter

Den här guiden beskriver i huvudsak Jupyter Notebook 6.x.[1] Den kan med fördel utökas med mer information om resten av Project Jupyter.

Information om Jupyter

Jupyter Notebook (tidigare IPython Notebook) är ett gränssnitt och ett filformat som ofta används för explorativ dataanalys, demonstrationer och undervisningsmaterial. Filformatet låter dig kombinera avsnitt med text, bilder och annan media med avsnitt som innehåller programkod och resultat i samma fil. Konceptet brukar kallas notebook interface eller computational notebook.[2] Jupyter Notebook är öppen källkod, används av forskare inom många områden och erbjuds som molntjänst av företag och infrastrukturer som Microsoft, Google och European Open Science Cloud (EOSC-hub).

Jupyter Notebook är därmed inget fristående analysverktyg utan ett redskap för att arbeta med programkod som analysverktyg eller för att presentera resultaten. Den huvudsakliga fördelen med verktyget är att kunna köra programkod på ett lättillgängligt sätt. Beskrivningar och kod läggs in i notebookfilen i en sekvens av avgränsade celler, som sedan kan markeras och köras individuellt. Eventuell utmatning dyker upp under respektive cell. Jupyter fungerar på samma sätt oavsett programspråk, men för att kunna köra programkod krävs att en s.k. kernel för programspråket finns tillgänglig på datorn tillsammans med eventuella programpaket som används.[3] Gränssnittet kan också utökas med widgets som t.ex. används för att interagera med data eller programkod.[4]

Jupyter Notebook är ett delprojekt i det större Project Jupyter, vars namn är en sammandragning av programspråken Julia, Python och R.[5] Ett annat delprojekt är JupyterLab, som är en vidareutveckling och framtida ersättare för gränssnittet till Jupyter Notebook.[6] JupyterLab öppnar och skriver samma filformat som Jupyter Notebook.

JupyterHub är en serverprogramvara som gör Jupyter Notebook och/eller JupyterLab med kernels och widgets tillgänglig för användare över internet.[7]

Ett enkelt sätt att hämta Jupyter Notebook är som en del av den Python- och R-baserade programsviten Anaconda, som finns för Windows, macOS och Linux.[8]

Lathund

Att öppna och spara en fil

Jupyter Notebook kräver en webbläsare och officiellt stöds de senaste versionerna av Chrome, Safari och Firefox. När du har startat Jupyter Notebook lokalt på datorn öppnas dess gränssnitt i din webbläsare och du möts av en lista med filer. Du kan skapa en ny notebook genom att navigera till önskad mapp och klicka New uppe till höger. Du väljer sedan en kernel för det programspråk som du skall använda i Noteboken, t.ex. Python 3, och en ny notebook skapas i samma mapp med filnamnet "Untitled".

Jupyter Notebooks har filändelsen .ipynb och kan identifieras på sin särskilda ikon i webbfilhanteraren. För att öppna en existerande notebook navigerar du till dess mapp och klickar på den i webbfilhanteraren.

Din öppnade notebook sparas automatiskt allt eftersom du arbetar i den och lägger till nya celler. I File-menyn finns dock möjligheten att skapa s.k. checkpoints med Save and Checkpoint. Du sparar då undan en version av notebooken som det är möjligt att gå tillbaka till senare. Samtidigt fortsätter notebooken att autosparas.

Eftersom Jupyter utvecklats i programspråket Python finns alltid en kernel för Python 3.x tillgänglig. Du kan behöva konfigurera eller installera en annan kernel om programkoden är skriven i ett annat programspråk eller om den förutsätter att vissa programpaket finns installerade. Detta är dock något som du sköter utanför Jupyter Notebook, med hjälp av pakethanterare eller installationsprogram.

Det är också möjligt att öppna och arbeta i en Jupyter Notebook som finns på en annan server eller molntjänst. Du interagerar då i webbläsaren med notebooken, men all kod körs på servern. Detta kan vara en fördel då man vill tillgängliggöra en färdig miljö som användaren kan jobba i direkt utan att behöva installera extramjukvara på egen dator eller lagra datasets lokalt. En vanlig sådan lösning är fleranvändarservern JupyterHub (se ovan) eller den tidigare varianten Binder,[9] och det finns ett urval av molntjänster för att arbeta på detta sätt.

Dokumentationsmöjligheter

En Jupyter Notebook utgör i sig ofta en del av dokumentationen av en analys eller ett projekt. Den information i notebookfilen som inte är programkod utan t.ex. förklaringar och beskrivningar byggs upp med hjälp av ett standardiserat märkspråk, Markdown.[10] Detta är utformat för att vara intuitivt och kan t.ex. jämföras med wikitext. Det går också att använda sig av LaTeX-syntax för att t.ex. generera formler och liknande notation i cellerna.

Det kanske viktigaste att dokumentera om själva Jupyter Notebook-filen är de olika beroenden som finns till andra entiteter. Detta kan röra sig om programspråk och kernels, programbibliotek som anropas, eller olika verktyg på datorn som används för t.ex. nedladdning, filhantering eller konvertering när notebooken körs. En tydlig redogörelse för vilken mjukvara som används och vilka versioner av denna som krävs behöver därför finnas med i dokumentationen, t.ex. som en readme-fil.

I de fall som data för analysen eller annat material länkas eller hämtas in genom URL:er eller API-anrop är det eftersträvansvärt att använda olika typer av persistenta adresser och identifierare. Om möjligt bör också kontaktuppgifter till ansvariga för det externa materialet finnas med i dokumentationen utifall att det inte längre skulle gå att komma åt på anvisat sätt.

Filtyper som stöds i Jupyter

Filformatet IPyNB

Jupyter Notebook 6.x använder filformatet Jupyter Notebook Format 5.x.[11] Filerna är uppbyggda i JSON-format och innehåller cellerna och en beskrivning av den kernel som används för programkoden. Skapar du checkpoints sparas dessa i samma format men i en undermapp: ".ipynb_checkpoints/".

  • Notebook (.ipynb)
  • Checkpoint (.ipynb)

Import

Länkad media
Precis som en webbplats kan en Jupyter Notebook ha en mängd material inlänkat från andra platser. Det kan t.ex. röra sig om sökvägar till filer i filsystemet, eller länkar till filer på internet, Youtube-klipp, etc. Inlänkning av olika data och medier kan ske både i Markdown-celler och i celler med programkod.

Inbäddad media
Media och data kan också bäddas in som en del av både Markdown och kod, t.ex. en bild lagrad i base64-kodning eller ett dataset som deklareras som en variabel. Det kan också röra sig om media som skapas i ögonblicket som programkoden i notebooken körs, t.ex. skapade grafer och diagram, en genererad ljudsignal eller andra typer av procedurellt skapad media.

Export

Det är möjligt att exportera en Jupyter Notebook till olika mer eller mindre statiska presentationsformat. Detta görs genom att välja Export Notebook As... i File-menyn. I praktiken genomförs konverteringen av det separata verktyget nbconvert.[12]

  • AsciiDoc (.asciidoc)
  • HTML (.html)
  • LaTeX (.tex)
  • Markdown (.md)
  • PDF (.pdf)
  • reStructuredText (.rst)
  • Reveal.js slides (.slides.html)

Det finns också ett separat verktyg vid namn nbviewer som kan användas för att skapa en webbsida utifrån en Jupyter Notebook.[13]

Det är möjligt att exportera den samlade koden i notebooken till en separat källkodsfil, t.ex. .py för Pythonkod. Även detta kan göras från Export-menyn.

Källor

1.^ The Jupyter Notebook
2.^ Wikipedia - Notebook interface
3.^ Github - Jupyter kernels
4.^ Jupyter - Interactive Widgets
5.^ Project Jupyter
6.^ JupyterLab Documentation
7.^ JupyterHub
7.^ JupyterHub
8.^ Anaconda Distribution
9.^ Binder Documentation
10.^ Wikipedia - Markdown
11.^ The Jupyter Notebook Format
12.^ nbconvert: Convert Notebooks to other formats
13.^ nbviewer: A simple way to share Jupyter Notebooks

Blandade länkar

https://jupyter.org/documentation
https://nbviewer.jupyter.org/


Författare: André Jernung, Thomas Kieselbach, Nadja Neumann & Wolmar Nyberg Åkerström

Senast uppdaterad: 2020-01-24