{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Functions\n", "====" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Waht's wrong with this code?" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "max_iter = 100\n", "h, w = 400, 400\n", "\n", "img = np.zeros((h, w)).astype('int')\n", "for i, real in enumerate(np.linspace(-1.5, 0.5, w)):\n", " for j, imag in enumerate(np.linspace(-1, 1, h)):\n", " c = complex(real, imag)\n", " z = 0 + 0j\n", " for k in range(max_iter):\n", " z = z*z + c\n", " if abs(z) > 2:\n", " break\n", " img[j, i] = k\n", "\n", "plt.grid(False)\n", "plt.imshow(img, cmap=plt.cm.jet)\n", "pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- hard to udnerstand\n", "- uses global variabels\n", "- not re-usable except by copy and paste" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Refactoring to use functions" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def mandel(c, z=0, max_iter=100):\n", " for k in range(max_iter):\n", " z = z*z + c\n", " if abs(z) > 2:\n", " return k\n", " return k" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def mandelbrot(w, h, xl=-1.5, xu=0.5, yl=-1, yu=1):\n", " img = np.zeros((h, w)).astype('int')\n", " for i, real in enumerate(np.linspace(xl, xu, w)):\n", " for j, imag in enumerate(np.linspace(yl, yu, h)):\n", " c = complex(real, imag)\n", " img[j, i] = mandel(c)\n", " return img" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "img = mandelbrot(w=400, h=400)\n", "plt.grid(False)\n", "plt.imshow(img, cmap=plt.cm.jet)\n", "pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Function is re-usable" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n/wdbgePtnomnDAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "img = mandelbrot(w=400, h=400, xl=-0.75, xu=-0.73, yl=0.1, yu=0.12)\n", "plt.grid(False)\n", "plt.imshow(img, cmap=plt.cm.jet)\n", "pass" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Anonlymous functions (lamabdas)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def square(x):\n", " return x*x" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "9" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "square(3)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [], "source": [ "square2 = lambda x: x*x" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "9" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "square2(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### First class functions" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# functions can be traated the same way as (say) an integer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Fnctions can be passed in as arguments" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def grad(x, f, h=0.01):\n", " return (f(x+h) - f(x-h))/(2*h)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def f(x):\n", " return 3*x**2 + 5*x + 3" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "5.000000000000004" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grad(0, f)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Funcitons can also be returned by functions" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import time\n", "\n", "def timer(f):\n", " def g(*args, **kwargs):\n", " start = time.clock()\n", " result = f(*args, **kwargs) \n", " elapsed = time.clock() - start\n", " return result, elapsed\n", " return g" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def f(n=1000000):\n", " s = sum([x*x for x in range(n)])\n", " return s\n", "\n", "timed_func = timer(f)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(333332833333500000, 0.22118899999999897)" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "timed_func()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Decorators" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true }, "outputs": [], "source": [ "@timer\n", "def g(n=1000000):\n", " s = sum([x*x for x in range(n)])\n", " return s" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(333332833333500000, 0.2040980000000001)" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Map, filter, reduce" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "map(lambda x: x*x, [1,2,3,4])" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[1, 4, 9, 16]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list(map(lambda x: x*x, [1,2,3,4]))" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[2, 4]" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list(filter(lambda x: x%2==0, [1,2,3,4]))" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from functools import reduce" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "240" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "reduce(lambda x, y: x*y, [1,2,3,4], 10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### List comprehenision" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[1, 4, 9, 16]" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[x*x for x in [1,2,3,4]]" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[2, 4]" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[x for x in [1,2,3,4] if x%2 == 0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Set and dictionary comprehension" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "{0, 1, 2}" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{i%3 for i in range(10)}" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "{0: 0, 1: 1, 2: 2, 3: 0, 4: 1, 5: 2, 6: 0, 7: 1, 8: 2, 9: 0}" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{i: i%3 for i in range(10)}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Generator expressions" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ " at 0x1094cb938>" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(i**2 for i in range(10,15))" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "100\n", "121\n", "144\n", "169\n", "196\n" ] } ], "source": [ "for x in (i**2 for i in range(10,15)):\n", " print(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Generator expressions\n", "----\n", "\n", "Generator expressions return a potentially infinite stream, but one at a time thus sparing memory. They are ubiquitous in Python 3, allowing us to handle arbitrarily large data sets. " ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def count(i=0):\n", " while True:\n", " yield i\n", " i += 1 " ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "c = count()\n", "next(c)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "next(c)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "next(c)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[('a', 10), ('b', 11), ('c', 12), ('d', 13), ('e', 14)]" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list(zip('abcde', count(10)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Itertools" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import itertools as it" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "5\n", "6\n", "7\n", "8\n", "9\n" ] } ], "source": [ "for i in it.islice(count(), 5, 10):\n", " print(i)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0\n", "1\n", "2\n", "3\n", "4\n" ] } ], "source": [ "for i in it.takewhile(lambda i: i< 5, count()):\n", " print(i)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[3, 5, 7]" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import operator as op\n", "\n", "[i for i in it.starmap(op.add, [(1,2), (2,3), (3,4)])]" ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3 ['fig']\n", "6 ['appple', 'banana', 'cherry', 'durain']\n", "8 ['eggplant']\n" ] } ], "source": [ "fruits = ['appple', 'banana', 'cherry', 'durain', 'eggplant', 'fig']\n", "\n", "for k, group in it.groupby(sorted(fruits, key=len), len):\n", " print(k, list(group))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Functools" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import functools as fn" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": false }, "outputs": [], "source": [ "rng1 = fn.partial(np.random.normal, 2, .3)\n", "rng2 = fn.partial(np.random.normal, 10, 1)" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 1.74912105, 1.98518135, 2.10565975, 1.74981538, 1.57383371,\n", " 2.17027087, 2.66615411, 2.17479635, 1.65850304, 2.18972124])" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rng1(10)" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 7.47878506, 11.1307094 , 9.95800128, 9.91753149,\n", " 8.93918569, 9.46457246, 11.96952595, 10.76935203,\n", " 11.74376052, 8.77382197])" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rng2(10)" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "95.891256272508414" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fn.reduce(op.add, rng2(10))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Modules" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from pandas import DataFrame, Series\n", "import scipy.stats as ss" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "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", "
abcd
00.5464530.0660610.2743970.062071
10.1903010.1262420.1859200.591911
20.1365870.1906150.0169190.157208
\n", "
" ], "text/plain": [ " a b c d\n", "0 0.546453 0.066061 0.274397 0.062071\n", "1 0.190301 0.126242 0.185920 0.591911\n", "2 0.136587 0.190615 0.016919 0.157208" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "DataFrame(ss.beta(2,5).rvs((3,4)), columns=['a', 'b', 'c', 'd'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Where does Python search for modules?" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "['',\n", " '/Users/cliburn/anaconda/envs/py35/lib/python35.zip',\n", " '/Users/cliburn/anaconda/envs/py35/lib/python3.5',\n", " '/Users/cliburn/anaconda/envs/py35/lib/python3.5/plat-darwin',\n", " '/Users/cliburn/anaconda/envs/py35/lib/python3.5/lib-dynload',\n", " '/Users/cliburn/anaconda/envs/py35/lib/python3.5/site-packages/Sphinx-1.3.1-py3.5.egg',\n", " '/Users/cliburn/anaconda/envs/py35/lib/python3.5/site-packages/setuptools-19.1.1-py3.5.egg',\n", " '/Users/cliburn/anaconda/envs/py35/lib/python3.5/site-packages',\n", " '/Users/cliburn/anaconda/envs/py35/lib/python3.5/site-packages/aeosa',\n", " '/Users/cliburn/anaconda/envs/py35/lib/python3.5/site-packages/IPython/extensions',\n", " '/Users/cliburn/.ipython']" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import sys\n", "sys.path" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Creating your own module" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Overwriting my_module.py\n" ] } ], "source": [ "%%file my_module.py\n", "\n", "PI = 3.14\n", "\n", "def my_f(x):\n", " return PI*x" ] }, { "cell_type": "code", "execution_count": 51, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "3.14" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import my_module as mm\n", "\n", "mm.PI" ] }, { "cell_type": "code", "execution_count": 52, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "6.28" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mm.my_f(2)" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from my_module import PI" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "12.56" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "PI * 2 * 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Note**: Modules can also be nested within each other - e.g. `numpy.random` to creaate a *package*. We will explore how to create packages in a later session." ] } ], "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.5.1" } }, "nbformat": 4, "nbformat_minor": 0 }