{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# CR\u00dcCIAL P\u0178THON: IPython Notebook Demo" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from IPython.core.display import Image \n", "Image(filename='logo.png', width=600) " ], "language": "python", "metadata": {}, "outputs": [ { "metadata": { "png": { "width": 600 } }, "output_type": "pyout", "png": "iVBORw0KGgoAAAANSUhEUgAAA0oAAAEiCAYAAADH4iLzAAAKQWlDQ1BJQ0MgUHJvZmlsZQAASA2d\nlndUU9kWh8+9N73QEiIgJfQaegkg0jtIFQRRiUmAUAKGhCZ2RAVGFBEpVmRUwAFHhyJjRRQLg4Ji\n1wnyEFDGwVFEReXdjGsJ7601896a/cdZ39nnt9fZZ+9917oAUPyCBMJ0WAGANKFYFO7rwVwSE8vE\n9wIYEAEOWAHA4WZmBEf4RALU/L09mZmoSMaz9u4ugGS72yy/UCZz1v9/kSI3QyQGAApF1TY8fiYX\n5QKUU7PFGTL/BMr0lSkyhjEyFqEJoqwi48SvbPan5iu7yZiXJuShGlnOGbw0noy7UN6aJeGjjASh\nXJgl4GejfAdlvVRJmgDl9yjT0/icTAAwFJlfzOcmoWyJMkUUGe6J8gIACJTEObxyDov5OWieAHim\nZ+SKBIlJYqYR15hp5ejIZvrxs1P5YjErlMNN4Yh4TM/0tAyOMBeAr2+WRQElWW2ZaJHtrRzt7VnW\n5mj5v9nfHn5T/T3IevtV8Sbsz55BjJ5Z32zsrC+9FgD2JFqbHbO+lVUAtG0GQOXhrE/vIADyBQC0\n3pzzHoZsXpLE4gwnC4vs7GxzAZ9rLivoN/ufgm/Kv4Y595nL7vtWO6YXP4EjSRUzZUXlpqemS0TM\nzAwOl89k/fcQ/+PAOWnNycMsnJ/AF/GF6FVR6JQJhIlou4U8gViQLmQKhH/V4X8YNicHGX6daxRo\ndV8AfYU5ULhJB8hvPQBDIwMkbj96An3rWxAxCsi+vGitka9zjzJ6/uf6Hwtcim7hTEEiU+b2DI9k\nciWiLBmj34RswQISkAd0oAo0gS4wAixgDRyAM3AD3iAAhIBIEAOWAy5IAmlABLJBPtgACkEx2AF2\ng2pwANSBetAEToI2cAZcBFfADXALDIBHQAqGwUswAd6BaQiC8BAVokGqkBakD5lC1hAbWgh5Q0FQ\nOBQDxUOJkBCSQPnQJqgYKoOqoUNQPfQjdBq6CF2D+qAH0CA0Bv0BfYQRmALTYQ3YALaA2bA7HAhH\nwsvgRHgVnAcXwNvhSrgWPg63whfhG/AALIVfwpMIQMgIA9FGWAgb8URCkFgkAREha5EipAKpRZqQ\nDqQbuY1IkXHkAwaHoWGYGBbGGeOHWYzhYlZh1mJKMNWYY5hWTBfmNmYQM4H5gqVi1bGmWCesP3YJ\nNhGbjS3EVmCPYFuwl7ED2GHsOxwOx8AZ4hxwfrgYXDJuNa4Etw/XjLuA68MN4SbxeLwq3hTvgg/B\nc/BifCG+Cn8cfx7fjx/GvyeQCVoEa4IPIZYgJGwkVBAaCOcI/YQRwjRRgahPdCKGEHnEXGIpsY7Y\nQbxJHCZOkxRJhiQXUiQpmbSBVElqIl0mPSa9IZPJOmRHchhZQF5PriSfIF8lD5I/UJQoJhRPShxF\nQtlOOUq5QHlAeUOlUg2obtRYqpi6nVpPvUR9Sn0vR5Mzl/OX48mtk6uRa5Xrl3slT5TXl3eXXy6f\nJ18hf0r+pvy4AlHBQMFTgaOwVqFG4bTCPYVJRZqilWKIYppiiWKD4jXFUSW8koGStxJPqUDpsNIl\npSEaQtOledK4tE20Otpl2jAdRzek+9OT6cX0H+i99AllJWVb5SjlHOUa5bPKUgbCMGD4M1IZpYyT\njLuMj/M05rnP48/bNq9pXv+8KZX5Km4qfJUilWaVAZWPqkxVb9UU1Z2qbapP1DBqJmphatlq+9Uu\nq43Pp893ns+dXzT/5PyH6rC6iXq4+mr1w+o96pMamhq+GhkaVRqXNMY1GZpumsma5ZrnNMe0aFoL\ntQRa5VrntV4wlZnuzFRmJbOLOaGtru2nLdE+pN2rPa1jqLNYZ6NOs84TXZIuWzdBt1y3U3dCT0sv\nWC9fr1HvoT5Rn62fpL9Hv1t/ysDQINpgi0GbwaihiqG/YZ5ho+FjI6qRq9Eqo1qjO8Y4Y7ZxivE+\n41smsImdSZJJjclNU9jU3lRgus+0zwxr5mgmNKs1u8eisNxZWaxG1qA5wzzIfKN5m/krCz2LWIud\nFt0WXyztLFMt6ywfWSlZBVhttOqw+sPaxJprXWN9x4Zq42Ozzqbd5rWtqS3fdr/tfTuaXbDdFrtO\nu8/2DvYi+yb7MQc9h3iHvQ732HR2KLuEfdUR6+jhuM7xjOMHJ3snsdNJp9+dWc4pzg3OowsMF/AX\n1C0YctFx4bgccpEuZC6MX3hwodRV25XjWuv6zE3Xjed2xG3E3dg92f24+ysPSw+RR4vHlKeT5xrP\nC16Il69XkVevt5L3Yu9q76c+Oj6JPo0+E752vqt9L/hh/QL9dvrd89fw5/rX+08EOASsCegKpARG\nBFYHPgsyCRIFdQTDwQHBu4IfL9JfJFzUFgJC/EN2hTwJNQxdFfpzGC4sNKwm7Hm4VXh+eHcELWJF\nREPEu0iPyNLIR4uNFksWd0bJR8VF1UdNRXtFl0VLl1gsWbPkRoxajCCmPRYfGxV7JHZyqffS3UuH\n4+ziCuPuLjNclrPs2nK15anLz66QX8FZcSoeGx8d3xD/iRPCqeVMrvRfuXflBNeTu4f7kufGK+eN\n8V34ZfyRBJeEsoTRRJfEXYljSa5JFUnjAk9BteB1sl/ygeSplJCUoykzqdGpzWmEtPi000IlYYqw\nK10zPSe9L8M0ozBDuspp1e5VE6JA0ZFMKHNZZruYjv5M9UiMJJslg1kLs2qy3mdHZZ/KUcwR5vTk\nmuRuyx3J88n7fjVmNXd1Z752/ob8wTXuaw6thdauXNu5Tnddwbrh9b7rj20gbUjZ8MtGy41lG99u\nit7UUaBRsL5gaLPv5sZCuUJR4b0tzlsObMVsFWzt3WazrWrblyJe0fViy+KK4k8l3JLr31l9V/nd\nzPaE7b2l9qX7d+B2CHfc3em681iZYlle2dCu4F2t5czyovK3u1fsvlZhW3FgD2mPZI+0MqiyvUqv\nakfVp+qk6oEaj5rmvep7t+2d2sfb17/fbX/TAY0DxQc+HhQcvH/I91BrrUFtxWHc4azDz+ui6rq/\nZ39ff0TtSPGRz0eFR6XHwo911TvU1zeoN5Q2wo2SxrHjccdv/eD1Q3sTq+lQM6O5+AQ4ITnx4sf4\nH++eDDzZeYp9qukn/Z/2ttBailqh1tzWibakNml7THvf6YDTnR3OHS0/m/989Iz2mZqzymdLz5HO\nFZybOZ93fvJCxoXxi4kXhzpXdD66tOTSna6wrt7LgZevXvG5cqnbvfv8VZerZ645XTt9nX297Yb9\njdYeu56WX+x+aem172296XCz/ZbjrY6+BX3n+l37L972un3ljv+dGwOLBvruLr57/17cPel93v3R\nB6kPXj/Mejj9aP1j7OOiJwpPKp6qP6391fjXZqm99Oyg12DPs4hnj4a4Qy//lfmvT8MFz6nPK0a0\nRupHrUfPjPmM3Xqx9MXwy4yX0+OFvyn+tveV0auffnf7vWdiycTwa9HrmT9K3qi+OfrW9m3nZOjk\n03dp76anit6rvj/2gf2h+2P0x5Hp7E/4T5WfjT93fAn88ngmbWbm3/eE8/syOll+AAAACXBIWXMA\nAAsTAAALEwEAmpwYAAAB1WlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxu\nczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJE\nRiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMi\nPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0\naWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx0aWZmOkNvbXBy\nZXNzaW9uPjE8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlBob3RvbWV0cmljSW50\nZXJwcmV0YXRpb24+MjwvdGlmZjpQaG90b21ldHJpY0ludGVycHJldGF0aW9uPgogICAgICAgICA8\ndGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlw\ndGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KOXS2agAAQABJREFUeAHsfeuVo8iy9Z27\n7n/qswBdC6hjARoLVNcCaixQHwuoY4H6WIDGAvVYgNoCaixAYwE1FujbuxvOZOckkEDyVMRau5PM\njIzHjgCJ6td//ZeIMCAMCAPCgDAgDAgDwoAwIAwIA8KAMCAMCAPCgDAgDAgDwoAwIAwIA8KAMCAM\nCAPCgDAgDAgDwoAwIAwIA8KAMCAMCAPCgDAgDAgDwoAwIAwIA8KAMCAMCAPCgDAgDAgDwoAwIAwI\nA8KAMCAMCAPCgDAgDAgDwoAwIAwIA8KAMCAMCAPCgDAgDAgDwoAwIAwIA8KAMCAMCAPCgDAgDAgD\nwoAwIAwIA8KAMCAMCAPCgDAgDAgDwoAwIAwIA8KAMCAMCAPCgDAgDAgDwsAiGPhpEVFIEMKAewZ8\nmNwpeML1M6DKDhNClRsmhCrvmHyUC9dy5Nqf5bUMwoAwIAwIA8KAMCAMCAMbY0BelDZW0AdNJ0De\ne4AvQjtgD0wlVzjiSxRfnIgb8DsgIgwIA8KAMCAMCAPCgDCwYgbkRWnFxXvg0Pm7RS/AvsQTxqXJ\nFQFVL0+8/gMQEQaEAWFAGBAGhAFhQBgQBoQBYcApA3w5OgE5cF8hCsR8AY5AAIgIA8KAMCAMCAPC\n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\nAABJRU5ErkJggg==\n", "prompt_number": 1, "text": [ "" ] } ], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Cells\n", "IPython Notebook is a cell-based development environment. Each block of code (or text) can be run independently, and all cells share the same kernel. Each evaluated cell is stored in the ```In``` array, and the corresponding output is stored in ```Out```." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Given $a \\in \\mathbb{R}^D$, compute $\\sum_{i = 1}^D a[i]^2$." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def sum_of_squares(a):\n", " return np.sum(a**2)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "foo = np.array([1, 3, 5])\n", "sum_of_squares(foo)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 3, "text": [ "35" ] } ], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "print Out[3] + 4" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "39\n" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "# With the --pylab inline option, matplotlib plots are inline as cell output\n", "w = np.linspace(0, 4*pi, 1000)\n", "plt.plot(w, np.sin(w))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 6, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nxtBE0g9oAAAAAElFTkSuQmCC\n", "text": [ "" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Tab Completion and documentation\n", "IPython will keep track of the members of all of the modules you import and give you tab-completion. It will also tab-complete function arguments and provide help() documentation inline." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import scipy.signal" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "scipy.signal.fi" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "help(scipy.signal.firwin)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Help on function firwin in module scipy.signal.fir_filter_design:\n", "\n", "firwin(numtaps, cutoff, width=None, window='hamming', pass_zero=True, scale=True, nyq=1.0)\n", " FIR filter design using the window method.\n", " \n", " This function computes the coefficients of a finite impulse response\n", " filter. The filter will have linear phase; it will be Type I if\n", " `numtaps` is odd and Type II if `numtaps` is even.\n", " \n", " Type II filters always have zero response at the Nyquist rate, so a\n", " ValueError exception is raised if firwin is called with `numtaps` even and\n", " having a passband whose right end is at the Nyquist rate.\n", " \n", " Parameters\n", " ----------\n", " numtaps : int\n", " Length of the filter (number of coefficients, i.e. the filter\n", " order + 1). `numtaps` must be even if a passband includes the\n", " Nyquist frequency.\n", " \n", " cutoff : float or 1D array_like\n", " Cutoff frequency of filter (expressed in the same units as `nyq`)\n", " OR an array of cutoff frequencies (that is, band edges). In the\n", " latter case, the frequencies in `cutoff` should be positive and\n", " monotonically increasing between 0 and `nyq`. The values 0 and\n", " `nyq` must not be included in `cutoff`.\n", " \n", " width : float or None\n", " If `width` is not None, then assume it is the approximate width\n", " of the transition region (expressed in the same units as `nyq`)\n", " for use in Kaiser FIR filter design. In this case, the `window`\n", " argument is ignored.\n", " \n", " window : string or tuple of string and parameter values\n", " Desired window to use. See `scipy.signal.get_window` for a list\n", " of windows and required parameters.\n", " \n", " pass_zero : bool\n", " If True, the gain at the frequency 0 (i.e. the \"DC gain\") is 1.\n", " Otherwise the DC gain is 0.\n", " \n", " scale : bool\n", " Set to True to scale the coefficients so that the frequency\n", " response is exactly unity at a certain frequency.\n", " That frequency is either:\n", " 0 (DC) if the first passband starts at 0 (i.e. pass_zero\n", " is True);\n", " `nyq` (the Nyquist rate) if the first passband ends at\n", " `nyq` (i.e the filter is a single band highpass filter);\n", " center of first passband otherwise.\n", " \n", " nyq : float\n", " Nyquist frequency. Each frequency in `cutoff` must be between 0\n", " and `nyq`.\n", " \n", " Returns\n", " -------\n", " h : 1D ndarray\n", " Coefficients of length `numtaps` FIR filter.\n", " \n", " Raises\n", " ------\n", " ValueError\n", " If any value in `cutoff` is less than or equal to 0 or greater\n", " than or equal to `nyq`, if the values in `cutoff` are not strictly\n", " monotonically increasing, or if `numtaps` is even but a passband\n", " includes the Nyquist frequency.\n", " \n", " Examples\n", " --------\n", " \n", " Low-pass from 0 to f::\n", " \n", " >>> firwin(numtaps, f)\n", " \n", " Use a specific window function::\n", " \n", " >>> firwin(numtaps, f, window='nuttall')\n", " \n", " High-pass ('stop' from 0 to f)::\n", " \n", " >>> firwin(numtaps, f, pass_zero=False)\n", " \n", " Band-pass::\n", " \n", " >>> firwin(numtaps, [f1, f2], pass_zero=False)\n", " \n", " Band-stop::\n", " \n", " >>> firwin(numtaps, [f1, f2])\n", " \n", " Multi-band (passbands are [0, f1], [f2, f3] and [f4, 1])::\n", " \n", " >>>firwin(numtaps, [f1, f2, f3, f4])\n", " \n", " Multi-band (passbands are [f1, f2] and [f3,f4])::\n", " \n", " >>> firwin(numtaps, [f1, f2, f3, f4], pass_zero=False)\n", " \n", " See also\n", " --------\n", " scipy.signal.firwin2\n" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## %magics\n", "\n", "IPython includes \"magics\", which are provide bonus useful functionality in IPython only. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "# %timeit runs a single line a bunch of times and reports the average run time\n", "%timeit np.arange(1000)\n", "%timeit xrange(1000)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "100000 loops, best of 3: 2.42 \u00b5s per loop\n", "1000000 loops, best of 3: 241 ns per loop" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "%%prun\n", "# prun runs Python's profiler on the current cell\n", "N = 1e5\n", "scipy.signal.fftconvolve(np.random.rand(N), np.random.rand(N))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "# Not a magic, but IPython also allows for running shell commands\n", "!ls -lh" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "total 240\r\n", "-rw-r--r-- 1 dawenl staff 76K Feb 7 12:23 demo.ipynb\r\n", "-rw-r--r-- 1 dawenl staff 2.3K Feb 7 12:23 demo.py\r\n", "-rw-r--r--@ 1 dawenl staff 36K Feb 6 23:41 logo.png\r\n" ] } ], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "# The Python-Matlab bridge can be used as a magic\n", "import pymatbridge as pymat\n", "ip = get_ipython()\n", "pymat.load_ipython_extension(ip)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Starting MATLAB on http://localhost:64732\n", " visit http://localhost:64732/exit.m to shut down same\n" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "." ] }, { "output_type": "stream", "stream": "stdout", "text": [ "." ] }, { "output_type": "stream", "stream": "stdout", "text": [ "." ] }, { "output_type": "stream", "stream": "stdout", "text": [ "." ] }, { "output_type": "stream", "stream": "stdout", "text": [ "." ] }, { "output_type": "stream", "stream": "stdout", "text": [ "MATLAB started and connected!\n" ] } ], "prompt_number": 12 }, { "cell_type": "code", "collapsed": false, "input": [ "# Python variable - a filter cutoff\n", "Wn = .2" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "%%matlab -i Wn -o b\n", "b = fir1(30, Wn);" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "import scipy.signal\n", "w, h = scipy.signal.freqz(b);\n", "plt.plot(w, np.abs(h))" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 15, "text": [ "[]" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nm+UAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Output\n", "* .ipynb files - human-readable json with all output cached\n", "* Autosaving\n", "* .py files with --script option\n", "* HTML, PDF, LaTeX, etc.\n", "* nbviewer to view notebooks without IPython installed\n", "http://nbviewer.ipython.org/github/craffel/crucialpython/blob/master/week1/demo.ipynb" ] } ], "metadata": {} } ] }