summaryrefslogtreecommitdiff
path: root/tutorials/module_1/jupyter_lab_notebook.md
blob: 6addd8604b8b6523b4393db4276550736d5dac26 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
## Introduction


Jupyter Notebooks are often used for data science and scientific computing such as machine learning as the interactive design allow you to experiment easily with your code. For our purpose, we will use Notebooks as it's a useful tool to learn how to code as well as writing reports.

*Note on the difference between Notebook and Lab: Jupyter Notebook offers a simplified, lightweight notebook authoring experience, where as, JupyterLab offers a feature-rich, tabbed multi-notebook editing environment with additional tools like a customizable interface layout and system console*


## Setup and Installation
Jupyter Notebooks can be installed either from the Anaconda Navigator home page or directly from your Conda terminal. 

Terminal: `conda install conda-forge::jupyterlab`

## Notebook Basics

^8cbcb2

Jupyter Notebooks are files which allows you to combine *Code* and *Markdown* cells in one single document. The code cells, allow you to interactively run python code and print and plot data in your document. If you wish to update or change data your code you can re-run the cell to update the output. The markdown cells allows you to write text, titles and insert images in your documentation using the markup language *Markdown*. 

To start a new notebook select `File > New > Notebook` or right click the file browser and select `New notebook`, this will prompt you to select a kernel (the Jupyter notebook "engine"). For now, just select the default Kernel 3. This will start a new fresh kernel for us to use. Next, it's recommended to rename the file.

Now that we have a blank notebook we can start to add cells. Add a cell and change the type to Markdown. Add a title with the hash symbol (`#`). As shown below.

```markdown
# Title here
```
Press `Shift + Enter` to run the cell. You just entered created your first markdown cell.
Now let's do the same but instead select code as the cell type, we're going to add some python code to the document. 
```python
x = 4
y = 3

x**2+2*y
```
Again, run the cell and see what happens. You should've gotten an output of `22`. You can now use the notebook as a calculator, but there is so much more we can do.

The order of running code matters. Think of the code cells as code snippets. Every time you run a cell variable will be updated. This means that the current state of all variables, functions, and imports depends on the history of what cells have been executed and in what order. In other words, if you run a later cell before running an earlier one that defines a variable or function it needs, you will get an error. If you change a variable in one cell and rerun it, that new value immediately affects the results of any cells that use that variable afterward — but not any previously run results unless you rerun them too. Variables and imports persist in memory between cells, but only based on the current session state — if you restart the kernel, you lose all previous definitions unless you re-run the necessary cells. Therefore, let's press the `Restart the kernel` button on the top window.3

Because of this, it's best practice to; Run cells in order, restart the kernel and run all cells (`Kernel -> Restart & Run All`) to make sure everything works cleanly and predictably and lastly, initialize important variables or imports in early cells, so they are always defined before they are needed.


## Making your document look good with Markdown
Creating titles or headers is done with the hash symbol. The number of hashes determines whether it's a sub-title
`#`, `##`, `###`

### Lists
There are two types of list in 
- Bullet lists: `- item`
- Numbered lists: `1. item`
### Style
- Emphasis: _italic_, **bold**, `monospace`

### Mathematical Equation
Markdown supports LaTeX format equations. Inline equation is opened and closed with a single `$`. For a block math a double `$$` is used instead of single.

- Inline: This equation is inline `$E = mc^2$` in with the markdown text.
- Block: Whilst this is a block: `$$\int_0^\infty e^{-x^2} dx = \frac{\sqrt{\pi}}{2}$$`

### Links and images
You can insert links to a different local file or online urls like this: \[Link](file.md). I insert an image it's the same however start with an exclamation mark `!` like this: !\[Image Caption](picture.png)

## Exporting and Sharing
To export your notebook go to 

 `File` > `Download As`

You can then select these options.

- Notebook (`.ipynb`)
- HTML
- PDF (requires LaTeX)
- Markdown

For homework assignments, download an HTML version of your document, then from your browser, save or print as a PDF. Alternatively, you can install the LaTeX typesetting system and export your document directly as PDF from jupyter.