{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "#
An introduction to Jupyter notebooks
\n", "##
ECS Data Science Hack Week 2018
14-19 May 2018
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## What is Jupyter?\n", "\n", "### It's a browser based application allowing you to run \"notebooks\" in your browser.\n", "### These notebooks can contain code" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2017-10-04T13:00:23.817284Z", "start_time": "2017-10-04T09:00:23.797270-04:00" }, "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "42\n" ] } ], "source": [ "a = 42\n", "\n", "print(a)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "There are 40 days left until the ECS Hack Week. Get stoked!\n" ] } ], "source": [ "import datetime\n", "\n", "hackWeek = datetime.date(2018, 5, 14)\n", "now = datetime.datetime.now().date()\n", "\n", "print('There are {} days left until the ECS Hack Week. Get stoked!'.format((hackWeek - now).days))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "### Lists\n", "- a\n", "- b \n", "\n", "### Equations\n", "$$\n", "\\frac{\\partial (\\epsilon c)}{\\partial t} = \\frac{\\partial}{\\partial x}\\left( \\epsilon D_{eff}\\frac{\\partial c}{\\partial x} \\right) + a (1-t_+^0) j_n\n", "$$\n", "\n", "### Tables\n", "\n", "| Name | | Column |\n", "|:---:|:---:|:---:|\n", "||This is a fun table||\n", "|To Do| Fill in the rest| |" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "###
Ju (Julia) + py (Python) + r (R)
\n", "\n", "### and now many many (~75) other languages\n", "\n", "
\n", "

Image from Fernando Perez PLOTCON talk

" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Easy development of code in bite size chunks" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Data intensive step" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2017-10-04T03:06:05.388792Z", "start_time": "2017-10-03T23:06:05.322745-04:00" }, "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
time(s)current(A)potential(V)frequency(Hz)amplitude(A)
00.000000-0.284471-0.1057581.00.3
10.002441-0.284077-0.105703NaNNaN
20.004883-0.283850-0.105895NaNNaN
30.007324-0.283256-0.105730NaNNaN
40.009766-0.282669-0.105804NaNNaN
\n", "
" ], "text/plain": [ " time(s) current(A) potential(V) frequency(Hz) amplitude(A)\n", "0 0.000000 -0.284471 -0.105758 1.0 0.3\n", "1 0.002441 -0.284077 -0.105703 NaN NaN\n", "2 0.004883 -0.283850 -0.105895 NaN NaN\n", "3 0.007324 -0.283256 -0.105730 NaN NaN\n", "4 0.009766 -0.282669 -0.105804 NaN NaN" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# import the pandas package\n", "import pandas as pd\n", "\n", "# read in the data from our file\n", "file_location = 'https://raw.githubusercontent.com/mdmurbach/ECS-Hack-Day-2017/master/time-data(833).txt?raw=true'\n", "data = pd.read_csv(file_location)\n", "\n", "# assign names to each of the columns for easy reference\n", "data.columns = ['time(s)', 'current(A)', 'potential(V)', 'frequency(Hz)', 'amplitude(A)']\n", "\n", "# print out the first 5 rows of our data\n", "data.head()" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2017-10-01T14:30:01.275550Z", "start_time": "2017-10-01T10:30:01.267548-04:00" }, "slideshow": { "slide_type": "subslide" } }, "source": [ "### Followed by a visualization or exploratory data analysis" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2017-10-04T03:06:08.103465Z", "start_time": "2017-10-03T23:06:07.741502-04:00" }, "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# import the matplotlib package\n", "import matplotlib.pyplot as plt\n", "\n", "# plot the current and voltage vs time\n", "plt.plot(data['time(s)'], data['current(A)'])\n", "plt.plot(data['time(s)'], data['potential(V)'])\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2017-10-04T03:06:08.926572Z", "start_time": "2017-10-03T23:06:08.916565-04:00" }, "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean current = 1.8441869734792116e-07 A; Mean potential = 1.8537388039516212e-07 V\n" ] } ], "source": [ "mean_current = data[\"current(A)\"].mean()\n", "mean_potential = data[\"potential(V)\"].mean()\n", "\n", "print('Mean current = {0} A; Mean potential = {1} V'.format(mean_current, mean_potential))" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Tips and tricks (keyboard shortcuts and %magic)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "# Keyboard shortcuts\n", "### Command mode vs. Edit mode\n", "\n", "Toggle with `esc` and `enter` keys\n", "\n", "### Useful command mode shortcuts\n", "|Command|Action|\n", "|:-----:|:----:|\n", "|a|Create new cell above|\n", "|b|Create new cell below|\n", "|d d|Delete current cell|\n", "|z| Undo delete cell|\n", "|m|Change cell to markdown|\n", "|y|Change cell to code|\n", "|h| Bring up the list of shortcuts|\n", "\n", "### Useful editing shortcuts\n", "\n", "|Command|Action|\n", "|:-----:|:----:|\n", "|Ctrl-a|Select all|\n", "|Ctrl-c|Copy|\n", "|Ctrl-v|Paste|\n", "|Ctrl-s|Save|\n", "|Tab| Autocomplete |\n", "|Shift-tab| Tooltips|" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# %magics!\n", "\n", "Commands that add additional (usually more advanced) features to the notebook\n", "\n", "|Magic|Action|\n", "|:-----:|:----:|\n", "| %lsmagic | List all magics |\n", "| ! | Execute shell script |\n", "| %who(s) | See list of variables in current kernel |\n", "| %time(it)| Time a python expression
(w/ control over number of executions, etc.)|\n", "\n", "Many more built-in magic functions: http://ipython.readthedocs.io/en/stable/interactive/magics.html\n", "\n", "### Cell magics (%%) vs. line magics (%)\n", "\n", "Some magics have versions that apply to the entire cell by placing %%magic as the first line in a cell (i.e. %%timeit)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2017-10-04T03:06:14.453648Z", "start_time": "2017-10-03T23:06:12.983624-04:00" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "22 µs ± 455 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)\n" ] } ], "source": [ "%timeit \",\".join(str(n) for n in range(100))\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Other cool stuff \n", "\n", "### Slideshow:\n", "\n", " jupyter nbconvert notebook.ipynb --to slides --post serve\n", " \n", "#### Online rendering with nbviewer: https://nbviewer.jupyter.org/\n", "\n", "#### Online execution with Binder: http://mybinder.org/\n", "\n", "#### Multi-user server with Jupyter Hub\n", "\n", "#### Add-ons with nbextensions\n", "\n", "#### Magics to execute R inside python notebook (https://rpy2.bitbucket.io/)\n", "\n", "### Recently released!! JupyterLab: a full IDE!\n", "https://github.com/jupyterlab/jupyterlab" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.3" } }, "nbformat": 4, "nbformat_minor": 2 }