add slideshow cell meta-data

The notebook can now be viewed in slideshow mode
This commit is contained in:
Kasper D. Fischer 2021-04-18 20:58:41 +02:00
parent 98d9187918
commit 0c0be93f92

View File

@ -2,7 +2,11 @@
"cells": [ "cells": [
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"<div style='background-image: url(\"../images/header.svg\") ; padding: 0px ; background-size: cover ; border-radius: 5px ; height: 250px'>\n", "<div style='background-image: url(\"../images/header.svg\") ; padding: 0px ; background-size: cover ; border-radius: 5px ; height: 250px'>\n",
" <div style=\"float: right ; margin: 50px ; padding: 20px ; background: rgba(255 , 255 , 255 , 0.7) ; width: 50% ; height: 150px\">\n", " <div style=\"float: right ; margin: 50px ; padding: 20px ; background: rgba(255 , 255 , 255 , 0.7) ; width: 50% ; height: 150px\">\n",
@ -11,13 +15,8 @@
" <div style=\"font-size: large ; padding-top: 20px ; color: rgba(0 , 0 , 0 , 0.5)\">A super quick crash course</div>\n", " <div style=\"font-size: large ; padding-top: 20px ; color: rgba(0 , 0 , 0 , 0.5)\">A super quick crash course</div>\n",
" </div>\n", " </div>\n",
" </div>\n", " </div>\n",
"</div>" "</div>\n",
] "\n",
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Seismo-Live: http://seismo-live.org\n", "Seismo-Live: http://seismo-live.org\n",
"\n", "\n",
"##### Authors:\n", "##### Authors:\n",
@ -28,14 +27,26 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [ "source": [
"This notebook is a very quick introduction to Python and in particular its scientific ecosystem in case you have never seen it before. It furthermore grants a possibility to get to know the [IPython/Jupyter notebook](http://www.nature.com/news/interactive-notebooks-sharing-the-code-1.16261). [See here for the official documentation](http://nbviewer.jupyter.org/github/jupyter/notebook/blob/master/docs/source/examples/Notebook/Notebook%20Basics.ipynb) of the Jupyter notebook - a ton more information can be found online.\n", "This notebook is a very quick introduction to Python and in particular its scientific ecosystem in case you have never seen it before. It furthermore grants a possibility to get to know the [IPython/Jupyter notebook](http://www.nature.com/news/interactive-notebooks-sharing-the-code-1.16261). [See here for the official documentation](http://nbviewer.jupyter.org/github/jupyter/notebook/blob/master/docs/source/examples/Notebook/Notebook%20Basics.ipynb) of the Jupyter notebook - a ton more information can be found online.\n",
"\n", "\n",
"\n", "\n",
"A lot of motivational writing on *Why Python?* is out there so we will not repeat it here and just condense it to a single sentence: **Python is a good and easy to learn, open-source, general purpose programming language that happens to be very good for many scientific tasks (due to its vast scientific ecosystem).**\n", "A lot of motivational writing on *Why Python?* is out there so we will not repeat it here and just condense it to a single sentence: **Python is a good and easy to learn, open-source, general purpose programming language that happens to be very good for many scientific tasks (due to its vast scientific ecosystem).**"
"\n", ]
"\n", },
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"#### Quick Reference on How to Use This Notebook\n", "#### Quick Reference on How to Use This Notebook\n",
"\n", "\n",
"\n", "\n",
@ -57,8 +68,17 @@
"\n", "\n",
"```bash\n", "```bash\n",
"$ ipython\n", "$ ipython\n",
"```\n", "```"
"\n", ]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"## Notebook Setup\n", "## Notebook Setup\n",
"\n", "\n",
"First things first: In many notebooks you will find a cell similar to the following one. **Always execute it!** They do a couple of things:\n", "First things first: In many notebooks you will find a cell similar to the following one. **Always execute it!** They do a couple of things:\n",
@ -71,13 +91,17 @@
"\n", "\n",
"This essentially makes the notebooks work under Python 2 and Python 3.\n", "This essentially makes the notebooks work under Python 2 and Python 3.\n",
"\n", "\n",
"* Plots look quite a bit nicer (this is optional).\n" "* Plots look quite a bit nicer (this is optional)."
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"# Plots now appear in the notebook.\n", "# Plots now appear in the notebook.\n",
@ -90,7 +114,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"---\n", "---\n",
"\n", "\n",
@ -100,6 +128,8 @@
"\n", "\n",
"If you have any question regarding some specific Python functionality you can consult the official [Python documenation](http://docs.python.org/).\n", "If you have any question regarding some specific Python functionality you can consult the official [Python documenation](http://docs.python.org/).\n",
" \n", " \n",
"### Tutorials\n",
"\n",
"Furthermore a large number of Python tutorials, introductions, and books are available online. Here are some examples for those interested in learning more.\n", "Furthermore a large number of Python tutorials, introductions, and books are available online. Here are some examples for those interested in learning more.\n",
" \n", " \n",
"* [Learn Python The Hard Way](http://learnpythonthehardway.org/book/)\n", "* [Learn Python The Hard Way](http://learnpythonthehardway.org/book/)\n",
@ -107,12 +137,24 @@
"* [The Official Python Tutorial](http://docs.python.org/2/tutorial/index.html)\n", "* [The Official Python Tutorial](http://docs.python.org/2/tutorial/index.html)\n",
"* [Think Python Book](http://www.greenteapress.com/thinkpython/thinkpython.html)\n", "* [Think Python Book](http://www.greenteapress.com/thinkpython/thinkpython.html)\n",
" \n", " \n",
"### Matlab\n",
"\n",
"Some people might be used to Matlab - this helps:\n", "Some people might be used to Matlab - this helps:\n",
" \n", " \n",
"* [NumPy for Matlab Users Introdution](http://wiki.scipy.org/NumPy_for_Matlab_Users)\n", "* [NumPy for Matlab Users Introdution](http://wiki.scipy.org/NumPy_for_Matlab_Users)\n",
"* [NumPy for Matlab Users Cheatsheet](http://mathesaurus.sourceforge.net/matlab-numpy.html)\n", "* [NumPy for Matlab Users Cheatsheet](http://mathesaurus.sourceforge.net/matlab-numpy.html)"
" \n", ]
" \n", },
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"### More\n",
"\n",
"Additionally there is an abundance of resources introducing and teaching parts of the scientific Python ecosystem.\n", "Additionally there is an abundance of resources introducing and teaching parts of the scientific Python ecosystem.\n",
" \n", " \n",
"* [NumPy Tutorial](http://wiki.scipy.org/Tentative_NumPy_Tutorial)\n", "* [NumPy Tutorial](http://wiki.scipy.org/Tentative_NumPy_Tutorial)\n",
@ -133,7 +175,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"## Core Python Crash Course\n", "## Core Python Crash Course\n",
"\n", "\n",
@ -150,7 +196,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"# Three basic types of numbers\n", "# Three basic types of numbers\n",
@ -170,22 +220,25 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"source": [ "slideshow": {
"### 2. Strings" "slide_type": "slide"
] }
}, },
{
"cell_type": "markdown",
"metadata": {},
"source": [ "source": [
"### 2. Strings\n",
"\n",
"Just enclose something in single or double quotes and it will become a string. On Python 3 it defaults to unicode strings, e.g. non Latin alphabets and other symbols." "Just enclose something in single or double quotes and it will become a string. On Python 3 it defaults to unicode strings, e.g. non Latin alphabets and other symbols."
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"# You can use single or double quotes to create strings.\n", "# You can use single or double quotes to create strings.\n",
@ -210,7 +263,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [ "source": [
"#### Exercise\n", "#### Exercise\n",
"\n", "\n",
@ -220,7 +277,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"name = \"kasper\"\n", "name = \"kasper\"\n",
@ -229,22 +290,25 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"source": [ "slideshow": {
"### 3. Lists" "slide_type": "slide"
] }
}, },
{
"cell_type": "markdown",
"metadata": {},
"source": [ "source": [
"### 3. Lists\n",
"\n",
"Python has two main collection types: List and dictionaries. The former is just an ordered collection of objects and is introduced here." "Python has two main collection types: List and dictionaries. The former is just an ordered collection of objects and is introduced here."
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"# List use square brackets and are simple ordered collections of things.\n", "# List use square brackets and are simple ordered collections of things.\n",
@ -266,7 +330,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"### 4. Dictionaries\n", "### 4. Dictionaries\n",
"\n", "\n",
@ -276,7 +344,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"# Dictionaries have named fields and no inherent order. As is\n", "# Dictionaries have named fields and no inherent order. As is\n",
@ -304,7 +376,10 @@
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": { "metadata": {
"collapsed": true "collapsed": true,
"slideshow": {
"slide_type": "slide"
}
}, },
"source": [ "source": [
"### 5. Functions\n", "### 5. Functions\n",
@ -315,7 +390,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"# Functions are defined using the def keyword.\n", "# Functions are defined using the def keyword.\n",
@ -339,7 +418,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"### 6. Imports\n", "### 6. Imports\n",
"\n", "\n",
@ -349,7 +432,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"# Import anything, and use it with the dot accessor.\n", "# Import anything, and use it with the dot accessor.\n",
@ -369,7 +456,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [ "source": [
"How to know what is available?\n", "How to know what is available?\n",
"\n", "\n",
@ -380,7 +471,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"print(dir(math))" "print(dir(math))"
@ -388,7 +483,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [ "source": [
"Typing the dot and the TAB will kick off tab-completion." "Typing the dot and the TAB will kick off tab-completion."
] ]
@ -396,7 +495,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"math." "math."
@ -404,7 +507,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [ "source": [
"In the IPython framework you can also use a question mark to view the documentation of modules and functions." "In the IPython framework you can also use a question mark to view the documentation of modules and functions."
] ]
@ -412,7 +519,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"math.cos?" "math.cos?"
@ -420,7 +531,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"### 7. Control Flow\n", "### 7. Control Flow\n",
"\n", "\n",
@ -430,7 +545,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"temp = [\"a\", \"b\", \"c\"]\n", "temp = [\"a\", \"b\", \"c\"]\n",
@ -447,7 +566,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"# Useful to know is the range() function.\n", "# Useful to know is the range() function.\n",
@ -457,15 +580,23 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [ "source": [
"The second crucial control flow structure are if/else conditional and they work the same as in any other language." "The second crucial control flow structure are ***if/else*** conditional and they work the same as in any other language."
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"# If/else works as expected.\n", "# If/else works as expected.\n",
@ -479,15 +610,27 @@
" print(\"wait what?\")" " print(\"wait what?\")"
] ]
}, },
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"List comprehensions are a nice way to write compact loops. Make sure you understand this as it is very common in Python."
]
},
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"# List comprehensions are a nice way to write compact loops.\n",
"# Make sure you understand this as it is very common in Python.\n",
"\n",
"a = list(range(10))\n", "a = list(range(10))\n",
"print(a)\n", "print(a)\n",
"b = [i for i in a if not i % 2]\n", "b = [i for i in a if not i % 2]\n",
@ -503,7 +646,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"### 8. Error Messages\n", "### 8. Error Messages\n",
"\n", "\n",
@ -513,7 +660,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"def do_something(a, b): \n", "def do_something(a, b): \n",
@ -524,7 +675,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"## The Scientific Python Ecosystem\n", "## The Scientific Python Ecosystem\n",
"\n", "\n",
@ -539,7 +694,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [ "source": [
"### 9. NumPy\n", "### 9. NumPy\n",
"\n", "\n",
@ -549,7 +708,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"import numpy as np\n", "import numpy as np\n",
@ -571,7 +734,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [ "source": [
"### 10. SciPy\n", "### 10. SciPy\n",
"\n", "\n",
@ -581,7 +748,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"from scipy.interpolate import interp1d\n", "from scipy.interpolate import interp1d\n",
@ -595,7 +766,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [ "source": [
"### 11. Matplotlib\n", "### 11. Matplotlib\n",
"\n", "\n",
@ -605,7 +780,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"import matplotlib.pyplot as plt\n", "import matplotlib.pyplot as plt\n",
@ -619,7 +798,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [ "source": [
"## Exercises\n", "## Exercises\n",
"\n", "\n",
@ -637,7 +820,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"import matplotlib.pyplot as plt\n", "import matplotlib.pyplot as plt\n",
@ -652,7 +839,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [ "source": [
"#### 99 Bottles of Beer\n", "#### 99 Bottles of Beer\n",
"\n", "\n",
@ -674,7 +865,12 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"scrolled": true,
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"print(\"99 bottles of beer on the wall, 99 bottles of beer.\")\n", "print(\"99 bottles of beer on the wall, 99 bottles of beer.\")\n",
@ -684,7 +880,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [ "source": [
"#### Ceasar Cipher\n", "#### Ceasar Cipher\n",
"\n", "\n",
@ -714,7 +914,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"sentence = \"Pnrfne pvcure? V zhpu cersre Pnrfne fnynq!\"\n", "sentence = \"Pnrfne pvcure? V zhpu cersre Pnrfne fnynq!\"\n",
@ -739,7 +943,11 @@
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [ "source": [
"### Encoder ###\n", "### Encoder ###\n",
"Idea: Iterrate over all letters of a sentence and find the key (k) which contains the letter as value (v) in the code dictionary" "Idea: Iterrate over all letters of a sentence and find the key (k) which contains the letter as value (v) in the code dictionary"
@ -748,7 +956,11 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {
"slideshow": {
"slide_type": "fragment"
}
},
"outputs": [], "outputs": [],
"source": [ "source": [
"sentence = \"Geophysics with Python is fun!\"\n", "sentence = \"Geophysics with Python is fun!\"\n",
@ -763,16 +975,10 @@
"\n", "\n",
"print(result)" "print(result)"
] ]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
} }
], ],
"metadata": { "metadata": {
"celltoolbar": "Slideshow",
"kernelspec": { "kernelspec": {
"display_name": "Python 3", "display_name": "Python 3",
"language": "python", "language": "python",