summaryrefslogtreecommitdiff
path: root/book/module1/jupyter_lab_notebook.tex
blob: 9688beaa9786a2ab3302048662d50a52153e4f82 (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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
\subsection{Introduction}\label{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.

\emph{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}

\subsection{Setup and Installation}\label{setup-and-installation}

Installing with Conda using CLI: - \texttt{conda\ install\ jupyter}
Jupyter can also be installed using a Anaconda Navigator

\begin{verbatim}
- Launching:
    - From terminal: `jupyter notebook` or `jupyter lab`
    - From Anaconda Navigator or VSCode
- Navigating the interface:
    - Tabs and file browser
    - Kernel and terminals
\end{verbatim}

\subsection{Notebook Basics}\label{notebook-basics}

\begin{itemize}
\tightlist
\item
  Creating a new notebook (\texttt{.ipynb})
\item
  Types of cells:

  \begin{itemize}
  \tightlist
  \item
    Code
  \item
    Markdown
  \item
    Raw
  \end{itemize}
\item
  Running a cell: \texttt{Shift\ +\ Enter}
\item
  Adding/removing cells
\item
  Restarting the kernel
\item
  Saving and auto-checkpoints
\end{itemize}

\subsection{Writing and Running Code}\label{writing-and-running-code}

\begin{itemize}
\tightlist
\item
  Python syntax: - \texttt{print("Hello,\ world!")} - Variables and
  functions - Loops and conditionals
\item
  Importing libraries: - \texttt{import\ numpy\ as\ np} -
  \texttt{import\ pandas\ as\ pd} -
  \texttt{import\ matplotlib.pyplot\ as\ plt}
\end{itemize}

\subsection{Using Markdown}\label{using-markdown}

\begin{itemize}
\tightlist
\item
  Headers: \texttt{\#}, \texttt{\#\#}, \texttt{\#\#\#}
\item
  Bullet lists: \texttt{-\ item}
\item
  Numbered lists: \texttt{1.\ item}
\item
  Emphasis: \emph{italic}, \textbf{bold}, \texttt{monospace}
\item
  LaTeX equations:

  \begin{itemize}
  \tightlist
  \item
    Inline: \texttt{\$E\ =\ mc\^{}2\$}
  \item
    Block:
    \texttt{\$\$\textbackslash{}int\_0\^{}\textbackslash{}infty\ e\^{}\{-x\^{}2\}\ dx\ =\ \textbackslash{}frac\{\textbackslash{}sqrt\{\textbackslash{}pi\}\}\{2\}\$\$}
  \end{itemize}
\item
  Embedding links and images
\end{itemize}

\subsection{Interactive Widgets
(optional)}\label{interactive-widgets-optional}

Install \texttt{ipywidgets} from your package manager

\begin{Shaded}
\begin{Highlighting}[]
\ImportTok{import}\NormalTok{ ipywidgets }\ImportTok{as}\NormalTok{ widgets}
\NormalTok{widgets.IntSlider()}
\end{Highlighting}
\end{Shaded}

Example using interact:

\begin{Shaded}
\begin{Highlighting}[]
\ImportTok{from}\NormalTok{ ipywidgets }\ImportTok{import}\NormalTok{ interact}
\NormalTok{interact(}\KeywordTok{lambda}\NormalTok{ x: x}\OperatorTok{**}\DecValTok{2}\NormalTok{, x}\OperatorTok{=}\DecValTok{5}\NormalTok{)}
\end{Highlighting}
\end{Shaded}

\subsection{Productivity Tips}\label{productivity-tips}

Here are some keyboard shortcuts to improve your productivity when
writing in notebooks.

\begin{longtable}[]{@{}ll@{}}
\toprule\noalign{}
Key & Action \\
\midrule\noalign{}
\endhead
\bottomrule\noalign{}
\endlastfoot
A & insert cell above \\
B & insert cell below \\
M & switch to Markdown \\
Y & switch to code \\
\end{longtable}

Magic commands: - \texttt{\%timeit}, \texttt{\%matplotlib\ inline},
\texttt{\%\%bash} Splitting and merging cells Auto-save behavior

\subsection{Exporting and Sharing}\label{exporting-and-sharing}

\begin{itemize}
\tightlist
\item
  File \textgreater{} Download As:

  \begin{itemize}
  \tightlist
  \item
    Notebook (\texttt{.ipynb})
  \item
    HTML
  \item
    PDF (requires LaTeX)
  \item
    Markdown
  \end{itemize}
\item
  Notebooks can be saved and shared via the following services: - GitHub
  - nbviewer.org - mybinder.org - JupyterHub
\end{itemize}