{ "metadata": { "celltoolbar": "Slideshow", "name": "", "signature": "sha256:9ccc2f6272d78a4e125868946bfb950aa9e263bd4a05b54796d1b91b216d2845" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "

Introduction to Python


\n", "

Christof Angermueller

\n", "

@cangermueller

\n", "

http://cangermueller.com

\n", "

http://goo.gl/cAU9Tq

\n", "
" ] }, { "cell_type": "heading", "level": 1, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "About me" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Studies 2008-2013" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "PhD 2014-" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "" ] }, { "cell_type": "heading", "level": 1, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Why Python?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "* Increasing popularity\n", "* Good trade-off performance vs. productivity\n", "* [IPython for interactive computing](http://ipython.org/)\n", "* Many packages\n", "\n", "\n", "* [Python for R users](http://mathesaurus.sourceforge.net/r-numpy.html)\n", "* [Python for matlab users](http://www.pyzo.org/python_vs_matlab.html)" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Increasing popularity" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Good trade-off performance vs. productivity" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Many packages" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "heading", "level": 1, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Fundamental types" ] }, { "cell_type": "code", "collapsed": false, "input": [ "a = 10\n", "a" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 2, "text": [ "10" ] } ], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "type(a)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 3, "text": [ "int" ] } ], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "a = 1.0\n", "a" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 5, "text": [ "1.0" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "type(a)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 6, "text": [ "float" ] } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "a = 1 / 2\n", "a" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 7, "text": [ "0.5" ] } ], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "type(a)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 8, "text": [ "float" ] } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "s = 'Hello world!'\n", "s" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 9, "text": [ "'Hello world!'" ] } ], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "len(s)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 10, "text": [ "12" ] } ], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "s[1]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 13, "text": [ "'e'" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "'Foo' + 'Bar'" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 14, "text": [ "'FooBar'" ] } ], "prompt_number": 14 }, { "cell_type": "heading", "level": 1, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "list" ] }, { "cell_type": "code", "collapsed": false, "input": [ "l = [1, 2, 3]\n", "l" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 15, "text": [ "[1, 2, 3]" ] } ], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "type(l)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 16, "text": [ "list" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "l = list(range(1, 10))\n", "l" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 18, "text": [ "[1, 2, 3, 4, 5, 6, 7, 8, 9]" ] } ], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [ "len(l)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 19, "text": [ "9" ] } ], "prompt_number": 19 }, { "cell_type": "code", "collapsed": false, "input": [ "l[-1]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 20, "text": [ "9" ] } ], "prompt_number": 20 }, { "cell_type": "code", "collapsed": false, "input": [ "l[:5]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 21, "text": [ "[1, 2, 3, 4, 5]" ] } ], "prompt_number": 21 }, { "cell_type": "code", "collapsed": false, "input": [ "l[5:]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 22, "text": [ "[6, 7, 8, 9]" ] } ], "prompt_number": 22 }, { "cell_type": "code", "collapsed": false, "input": [ "l[::2]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 24, "text": [ "[1, 3, 5, 7, 9]" ] } ], "prompt_number": 24 }, { "cell_type": "code", "collapsed": false, "input": [ "l[::-1]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 25, "text": [ "[9, 8, 7, 6, 5, 4, 3, 2, 1]" ] } ], "prompt_number": 25 }, { "cell_type": "code", "collapsed": false, "input": [ "l.append([10, 11, 12])\n", "l" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 26, "text": [ "[1, 2, 3, 4, 5, 6, 7, 8, 9, [10, 11, 12]]" ] } ], "prompt_number": 26 }, { "cell_type": "code", "collapsed": false, "input": [ "l[-1]" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 27, "text": [ "[10, 11, 12]" ] } ], "prompt_number": 27 }, { "cell_type": "code", "collapsed": false, "input": [ "l.extend([13, 14, 15])\n", "l" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 29, "text": [ "[1, 2, 3, 4, 5, 6, 7, 8, 9, [10, 11, 12], 13, 14, 15, 13, 14, 15]" ] } ], "prompt_number": 29 }, { "cell_type": "code", "collapsed": false, "input": [ "l = range(100000)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 22 }, { "cell_type": "heading", "level": 2, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "dict" ] }, { "cell_type": "code", "collapsed": false, "input": [ "d = {'a': 1, 'b':2, 'c': 3}\n", "d" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 30, "text": [ "{'c': 3, 'a': 1, 'b': 2}" ] } ], "prompt_number": 30 }, { "cell_type": "code", "collapsed": false, "input": [ "type(d)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 31, "text": [ "dict" ] } ], "prompt_number": 31 }, { "cell_type": "code", "collapsed": false, "input": [ "d['a']" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 32, "text": [ "1" ] } ], "prompt_number": 32 }, { "cell_type": "code", "collapsed": false, "input": [ "d.keys()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 33, "text": [ "dict_keys(['c', 'a', 'b'])" ] } ], "prompt_number": 33 }, { "cell_type": "code", "collapsed": false, "input": [ "d.values()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 34, "text": [ "dict_values([3, 1, 2])" ] } ], "prompt_number": 34 }, { "cell_type": "code", "collapsed": false, "input": [ "for k, v in d.items():\n", " print(k, v)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "c 3\n", "a 1\n", "b 2\n" ] } ], "prompt_number": 36 }, { "cell_type": "heading", "level": 1, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "set" ] }, { "cell_type": "code", "collapsed": false, "input": [ "s = {'a', 'b', 'c', 'c'}\n", "s" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 37, "text": [ "{'a', 'b', 'c'}" ] } ], "prompt_number": 37 }, { "cell_type": "code", "collapsed": false, "input": [ "type(s)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 39, "text": [ "set" ] } ], "prompt_number": 39 }, { "cell_type": "code", "collapsed": false, "input": [ "'s' in s" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 40, "text": [ "False" ] } ], "prompt_number": 40 }, { "cell_type": "code", "collapsed": false, "input": [ "s.union({'a', 'b', 'f'})" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 41, "text": [ "{'a', 'b', 'c', 'f'}" ] } ], "prompt_number": 41 }, { "cell_type": "heading", "level": 1, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Loops and comprehensions" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def square_loop(l):\n", " rv = []\n", " for v in l:\n", " rv.append(v**2)\n", " return rv" ], "language": "python", "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [], "prompt_number": 42 }, { "cell_type": "code", "collapsed": false, "input": [ "square_loop(range(5))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 44, "text": [ "[0, 1, 4, 9, 16]" ] } ], "prompt_number": 44 }, { "cell_type": "code", "collapsed": false, "input": [ "def square_comprehension(l):\n", " return [v**2 for v in l]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 45 }, { "cell_type": "code", "collapsed": false, "input": [ "square_comprehension(range(5))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 46, "text": [ "[0, 1, 4, 9, 16]" ] } ], "prompt_number": 46 }, { "cell_type": "code", "collapsed": false, "input": [ "l = range(100000)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 50 }, { "cell_type": "code", "collapsed": false, "input": [ "%timeit square_loop(l)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "10 loops, best of 3: 46.3 ms per loop\n" ] } ], "prompt_number": 51 }, { "cell_type": "code", "collapsed": false, "input": [ "%timeit square_comprehension(l)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "10 loops, best of 3: 41.3 ms per loop\n" ] } ], "prompt_number": 52 }, { "cell_type": "heading", "level": 1, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Importing packages" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import math" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 53 }, { "cell_type": "code", "collapsed": false, "input": [ "math.pi" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 54, "text": [ "3.141592653589793" ] } ], "prompt_number": 54 }, { "cell_type": "code", "collapsed": false, "input": [ "math.sqrt(2)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 55, "text": [ "1.4142135623730951" ] } ], "prompt_number": 55 }, { "cell_type": "code", "collapsed": false, "input": [ "math.exp(1)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 56, "text": [ "2.718281828459045" ] } ], "prompt_number": 56 }, { "cell_type": "code", "collapsed": false, "input": [ "math.log(math.e)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 57, "text": [ "1.0" ] } ], "prompt_number": 57 }, { "cell_type": "heading", "level": 1, "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Further readings" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* [Python basics notebook](http://nbviewer.ipython.org/github/jrjohansson/scientific-python-lectures/blob/master/Lecture-1-Introduction-to-Python-Programming.ipynb)\n", "* http://www.python.org - The official web page of the Python programming language.\n", "* http://www.python.org/dev/peps/pep-0008 - Style guide for Python programming. Highly recommended. \n", "* http://ipython.org - The official IPython web page with further information about IPython notebook and IPython console \n" ] } ], "metadata": {} } ] }