diff options
author | Prabhu Ramachandran | 2017-01-03 00:12:26 +0530 |
---|---|---|
committer | Prabhu Ramachandran | 2017-01-03 00:12:26 +0530 |
commit | cc4176e5800c6988d6e8bd4a012678ee5f07f600 (patch) | |
tree | 6d393b48b22c1407c933ae61dd0f5cb55944880f /scipy | |
parent | 3fccee6f30b22fb8ac5f3c9e176d267896c14f00 (diff) | |
download | python-workshops-cc4176e5800c6988d6e8bd4a012678ee5f07f600.tar.gz python-workshops-cc4176e5800c6988d6e8bd4a012678ee5f07f600.tar.bz2 python-workshops-cc4176e5800c6988d6e8bd4a012678ee5f07f600.zip |
Add slides on IPython notebooks.
Diffstat (limited to 'scipy')
-rw-r--r-- | scipy/basic/Makefile | 3 | ||||
-rw-r--r-- | scipy/basic/circulate/sample.ipynb | 464 | ||||
-rw-r--r-- | scipy/basic/data/notebook/jupyter-interface.png | bin | 0 -> 108513 bytes | |||
-rw-r--r-- | scipy/basic/data/notebook/jupyter_logo.png | bin | 0 -> 103951 bytes | |||
-rw-r--r-- | scipy/basic/notebook.tex | 323 |
5 files changed, 789 insertions, 1 deletions
diff --git a/scipy/basic/Makefile b/scipy/basic/Makefile index 9cd489f..bd43507 100644 --- a/scipy/basic/Makefile +++ b/scipy/basic/Makefile @@ -11,7 +11,8 @@ SLIDES= intro.pdf prelims.pdf session1a.pdf \ session3.pdf \ session4.pdf \ exercises.pdf \ - mlab.pdf + mlab.pdf \ + notebook.pdf all: $(SLIDES) quickref.pdf diff --git a/scipy/basic/circulate/sample.ipynb b/scipy/basic/circulate/sample.ipynb new file mode 100644 index 0000000..d5072ae --- /dev/null +++ b/scipy/basic/circulate/sample.ipynb @@ -0,0 +1,464 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A sample notebook\n", + "==================\n", + "\n", + "Notebooks can contain:\n", + "\n", + "- Live Code\n", + "- [Markdown text](https://daringfireball.net/projects/markdown/)\n", + "- Markdown allows for images, links, tables, and raw HTML.\n", + "- Equations using LaTeX markup [Learn more](https://en.wikibooks.org/wiki/LaTeX/Mathematics)\n", + "- Visualizations\n", + "- [Interactive widgets](http://ipywidgets.readthedocs.io)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using the notebook\n", + "-------------------\n", + "\n", + "\n", + "- Familiarize yourself with the interface\n", + "- Help -> Interface tour\n", + "\n", + "\n", + "\n", + "- UI is modal\n", + "\n", + " - Esc puts you in command mode\n", + " - Enter puts you in edit mode\n", + "\n", + "- Write text in \"cells\"\n", + "\n", + "\n", + "- Cells are of different types\n", + "\n", + " - Markdown\n", + " - Code\n", + " \n", + "- Learn the basic keyboard shortcuts\n", + "\n", + " - Shift-Return to evaluate a cell\n", + " - Tab completion\n", + " - Shift-tab: tooltip help\n", + "\n", + "- In command mode\n", + "\n", + " - Press `a` to add a cell above the current cell\n", + " - Press `b` to add the cell below the current cell\n", + " - Press `m` to treat a cell as markdown\n", + " - Press `y` to treat a cell as code" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Code cells\n", + "-----------" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "hello world\n" + ] + } + ], + "source": [ + "print(\"hello world\")" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "1\n", + "2\n", + "3\n", + "4\n", + "5\n", + "6\n", + "7\n", + "8\n", + "9\n" + ] + } + ], + "source": [ + "for i in range(10):\n", + " print(i)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Markdown\n", + "---------\n", + "\n", + "Learn more about [Markdown syntax](https://daringfireball.net/projects/markdown/).\n", + "\n", + "A simple image example:\n", + "\n", + "\n", + "\n", + "Some code:\n", + "\n", + "```\n", + "for i in range(10):\n", + " print(i)\n", + "```\n", + "\n", + "\n", + "\n", + "Equations\n", + "---------\n", + "\n", + "Let us plot $y = \\int \\sin(x) dx $\n", + "in the range $[0, 2\\pi]$ in the following.\n", + "\n", + "Note how we can add text and math formulae easily.\n", + "\n", + "To learn more about the LaTeX markup for formulae, see this link:\n", + "\n", + "https://en.wikibooks.org/wiki/LaTeX/Mathematics\n", + "\n", + "Also see below how we embed a plot.\n", + "\n", + "We use `%pylab inline` to embed plots in the document itself.\n", + "\n", + "Visualization\n", + "--------------\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Populating the interactive namespace from numpy and matplotlib\n" + ] + } + ], + "source": [ + "%pylab inline\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[<matplotlib.lines.Line2D at 0x110295090>]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nAAAAAElFTkSuQmCC\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x10e744550>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "x = linspace(0, 2*pi, 200)\n", + "plot(x, -cos(x))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Another plot" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[<matplotlib.lines.Line2D at 0x1105a24d0>]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x110246550>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot(x, sin(x))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A cleaner way to use matplotlib is as follows\n", + "---------------------------------------------" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "from matplotlib import pyplot as plt\n", + "from numpy import linspace, sin" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[<matplotlib.lines.Line2D at 0x1106ef850>]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nfUFVZthXc6IAAAAASUVORK5CYII=\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x1105587d0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "x = linspace(-5*pi, 5*pi, 200)\n", + "plt.plot(x, sin(x)/x)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Interactive widgets\n", + "-------------------\n", + "\n", + "- Require the ipywidgets package to be installed\n", + "- Here is a simple demo for adding interactivity to a plot\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "from ipywidgets import interact" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def damp(alpha):\n", + " t = linspace(0, 4*pi, 200)\n", + " plot(t, exp(-t*alpha)*sin(t))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "<function __main__.damp>" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x1105585d0>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "interact(damp, alpha=0.5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A slightly more complex example\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "text/plain": [ + "<function __main__.damp>" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\nSBH6P83ulmps/zQRAAAAAElFTkSuQmCC\n", + "text/plain": [ + "<matplotlib.figure.Figure at 0x11094f210>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def damp(alpha, beta):\n", + " t = linspace(0, 4*pi, 200)\n", + " plot(t, exp(-t*alpha)*sin(t + beta))\n", + " \n", + "interact(damp, alpha=0.2, beta=5.0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Learn more about widgets at: http://ipywidgets.readthedocs.io\n", + "\n", + "Remember to click on \"File->Close and Halt\" when closing a notebook.\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 2", + "language": "python", + "name": "python2" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.11" + }, + "widgets": { + "state": { + "81d12c825dd8485abbbf312ee78fc174": { + "views": [ + { + "cell_index": 16 + } + ] + }, + "9df38627ee694f0292ef2088d3878aff": { + "views": [ + { + "cell_index": 18 + } + ] + } + }, + "version": "1.2.0" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/scipy/basic/data/notebook/jupyter-interface.png b/scipy/basic/data/notebook/jupyter-interface.png Binary files differnew file mode 100644 index 0000000..674dc68 --- /dev/null +++ b/scipy/basic/data/notebook/jupyter-interface.png diff --git a/scipy/basic/data/notebook/jupyter_logo.png b/scipy/basic/data/notebook/jupyter_logo.png Binary files differnew file mode 100644 index 0000000..e7e2e47 --- /dev/null +++ b/scipy/basic/data/notebook/jupyter_logo.png diff --git a/scipy/basic/notebook.tex b/scipy/basic/notebook.tex new file mode 100644 index 0000000..b6b6f52 --- /dev/null +++ b/scipy/basic/notebook.tex @@ -0,0 +1,323 @@ +\documentclass[14pt,compress]{beamer} +%\documentclass[draft]{beamer} +%\documentclass[compress,handout]{beamer} +%\usepackage{pgfpages} +%\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm] + +% Modified from: generic-ornate-15min-45min.de.tex +\mode<presentation> +{ + \usetheme{Warsaw} + \useoutertheme{infolines} + \setbeamercovered{transparent} +} + +\usepackage[english]{babel} +\usepackage[latin1]{inputenc} +%\usepackage{times} +\usepackage[T1]{fontenc} +\usepackage{pgf} + +% Taken from Fernando's slides. +\usepackage{ae,aecompl} +\usepackage{mathpazo,courier,euler} +\usepackage[scaled=.95]{helvet} +\usepackage{amsmath} + +\definecolor{darkgreen}{rgb}{0,0.5,0} + +\usepackage{listings} +\lstset{language=Python, + basicstyle=\ttfamily\bfseries, + commentstyle=\color{red}\itshape, + stringstyle=\color{darkgreen}, + showstringspaces=false, + keywordstyle=\color{blue}\bfseries} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Macros +\setbeamercolor{emphbar}{bg=blue!20, fg=black} +\newcommand{\emphbar}[1] +{\begin{beamercolorbox}[rounded=true]{emphbar} + {#1} + \end{beamercolorbox} +} + +\newcommand{\myemph}[1]{\structure{\emph{#1}}} +\newcommand{\PythonCode}[1]{\lstinline{#1}} + +\newcounter{time} +\setcounter{time}{0} +\newcommand{\inctime}[1]{\addtocounter{time}{#1}{\tiny \thetime\ m}} + +\newcommand{\typ}[1]{\lstinline{#1}} + +\newcommand{\kwrd}[1]{ \texttt{\textbf{\color{blue}{#1}}} } + + +\newcommand\BackgroundPicture[1]{% + \setbeamertemplate{background}{% + \parbox[c][\paperheight]{\paperwidth}{% + \vfill \hfill + \pgfimage[width=1.0\paperwidth,height=1.0\paperheight]{#1} + \hfill \vfill +}}} + +% For non-wide pictures, set the width so that the height scales +% appropriately. +\newcommand\BackgroundPictureWidth[1]{% + \setbeamertemplate{background}{% + \parbox[c][\paperheight]{\paperwidth}{% + \vfill \hfill + \pgfimage[width=1.0\paperwidth]{#1} + \hfill \vfill +}}} + +% For shorter pictures, set the height so that the width scales +% appropriately. +\newcommand\BackgroundPictureHeight[1]{% + \setbeamertemplate{background}{% + \parbox[c][\paperheight]{\paperwidth}{% + \vfill \hfill + \pgfimage[height=1.0\paperheight]{#1} + \hfill \vfill +}}} + +%%% This is from Fernando's setup. +% \usepackage{color} +% \definecolor{orange}{cmyk}{0,0.4,0.8,0.2} +% % Use and configure listings package for nicely formatted code +% \usepackage{listings} +% \lstset{ +% language=Python, +% basicstyle=\small\ttfamily, +% commentstyle=\ttfamily\color{blue}, +% stringstyle=\ttfamily\color{orange}, +% showstringspaces=false, +% breaklines=true, +% postbreak = \space\dots +% } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Title page +\title[IPython notebooks]{Introductory Scientific Computing with +Python} +\subtitle{IPython notebooks} + +\author{FOSSEE} + +\institute[FOSSEE -- IITB] {Department of Aerospace Engineering\\IIT Bombay} +\date[] { +Mumbai, India +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%\pgfdeclareimage[height=0.75cm]{iitmlogo}{iitmlogo} +%\logo{\pgfuseimage{iitmlogo}} + + +%% Delete this, if you do not want the table of contents to pop up at +%% the beginning of each subsection: +\AtBeginSubsection[] +{ + \begin{frame}<beamer> + \frametitle{Outline} + \tableofcontents[currentsection,currentsubsection] + \end{frame} +} + +\AtBeginSection[] +{ + \begin{frame}<beamer> + \frametitle{Outline} + \tableofcontents[currentsection,currentsubsection] + \end{frame} +} + +% If you wish to uncover everything in a step-wise fashion, uncomment +% the following command: +%\beamerdefaultoverlayspecification{<+->} + +%\includeonlyframes{current,current1,current2,current3,current4,current5,current6} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% DOCUMENT STARTS +\begin{document} + +\begin{frame} + \maketitle +\end{frame} + +\begin{frame}[fragile] + \frametitle{Introduction} + \begin{itemize} + \item Have used the IPython console so far + \begin{itemize} + \item Terminal: \typ{ipython} + \item GUI: \typ{qtconsole} + \end{itemize} + \item Powerful and convenient + \item Must be installed as a package + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{IPython notebook} + \begin{itemize} + \item Create and share documents containing + \begin{itemize} + \item live code + \item equations + \item visualizations + \item interactive widgets + \item explanatory text + \end{itemize} + \item A web application + \end{itemize} +\end{frame} + + +\BackgroundPicture{data/notebook/jupyter-interface} +\begin{frame}[plain] +\end{frame} +\BackgroundPicture{data/intro/blank} + +\begin{frame} + \frametitle{Jupyter} + \begin{itemize} + \item Open source, interactive data science and computing + \item Brings IPython-like features to other languages + \item Console + \item Notebooks + \item Other tools: jupyterhub, nbviewer, etc. + \end{itemize} +\end{frame} + +\BackgroundPictureWidth{data/notebook/jupyter_logo} +\begin{frame}[plain] +\end{frame} +\BackgroundPicture{data/intro/blank} + +\begin{frame} + \frametitle{IPython and Jupyter} + \begin{itemize} + \item IPython provides Python specific functionality + \item Python \textbf{kernel} + \end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Getting started: IPython} +Console + \begin{lstlisting} +$ ipython +\end{lstlisting} %$ +\vspace*{0.25in} +The notebook: + \begin{lstlisting} +$ ipython notebook +\end{lstlisting} %$ +\end{frame} + +\begin{frame}[fragile] + \frametitle{Getting started: Jupyter} + \begin{lstlisting} +$ jupyter console +\end{lstlisting} %$ +\vspace*{0.25in} +The notebook: + \begin{lstlisting} +$ jupyter notebook +\end{lstlisting} %$ +\end{frame} + +\begin{frame}[fragile] + \frametitle{IPython notebooks and Canopy} + \begin{itemize} + \item Can directly open \typ{*.ipynb} files from Canopy + \item Or create a new notebook using the File menu + \end{itemize} +\end{frame} + + +\begin{frame}[fragile] + \frametitle{Pylab mode} + \begin{lstlisting} +In []: %pylab + \end{lstlisting} %$ +Or: + \begin{lstlisting} +In []: %matplotlib + \end{lstlisting} %$ +\end{frame} + +\begin{frame}[fragile] + \frametitle{Using matplotlib} + \begin{lstlisting} +In []: %matplotlib +In []: from matplotlib import pyplot as plt +In []: from numpy import linspace, sin +In []: x = linspace(0, 2*pi) +In []: plt.plot(x, sin(x)) + \end{lstlisting} +\end{frame} + +\begin{frame}[fragile] + \frametitle{What is the difference?} + \begin{itemize} + \item \typ{\%pylab}: imports pylab + \item \typ{\%matplotlib}: just sets up the plotting, no imports + \item Using explicit imports is cleaner + \item \typ{pyplot} provides the useful functionality + \item Could also just import \typ{pylab} + \end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Using the IPython notebook} + + \begin{itemize} + \item Start the notebook + \item Try: + \typ{jupyter notebook} + \item If that doesn't work use \typ{ipython notebook} + \item Create a new Python 2 or Python 3 notebook + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Basic Notebook Demo} + \begin{center} + Open the \typ{sample.ipynb} file provided + \end{center} +\end{frame} + +\begin{frame} + \frametitle{Exercise} + \begin{itemize} + \item Create a new notebook + \item Try the interface tour (Help->Interface tour) + \item Add some markdown text, an image, and a simple equation + \item Write some simple code in multiple cells + \item Add code from \typ{four_plot.py} and run it + \end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{More resources} + \begin{itemize} + \item \href{https://daringfireball.net/projects/markdown/syntax}{Markdown syntax} + \item \href{http://ipython.org}{IPython website} + \item \href{http://ipython.org/documentation.html}{IPython documentation} + \item \href{http://jupyter.org}{Jupyter website} + \item \href{https://jupyter.readthedocs.io/en/latest/index.html}{Jupyter documentation} + \item + \href{https://www.dataquest.io/blog/jupyter-notebook-tips-tricks-shortcuts/}{Jupyter + notebook tips and tricks} + \item \href{https://nbviewer.jupyter.org}{Example notebooks} + \item \href{http://tbc-python.fossee.in}{Python textbook companions} + \end{itemize} +\end{frame} + + +\end{document} |