{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Lesson 8 - Tricks and Tips" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we give a list of short and useful tips" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## \"Automatic\" Reshaping" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To change the dimensions of an array, you can omit one of the sizes which will\n", "then be deduced automatically:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "a = np.arange(30)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,\n", " 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29])" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "a.shape = 2,-1,3 # -1 means \"whatever is needed\"" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[[ 0, 1, 2],\n", " [ 3, 4, 5],\n", " [ 6, 7, 8],\n", " [ 9, 10, 11],\n", " [12, 13, 14]],\n", "\n", " [[15, 16, 17],\n", " [18, 19, 20],\n", " [21, 22, 23],\n", " [24, 25, 26],\n", " [27, 28, 29]]])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(2L, 5L, 3L)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Vector Stacking" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "How do we construct a 2D array from a list of equally-sized row vectors? In\n", "MATLAB this is quite easy: if x and y are two vectors of the same length you only need do `m=[x;y]`. In NumPy this works via the functions `column_stack`, `dstack`, `hstack` and `vstack`, depending on the dimension in which the stacking is to be done. For example:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "x = np.arange(0,10,2) # x = ([0,2,4,6,8])\n", "y = np.arange(5) # y = ([0,1,2,3,4])\n", "m = np.vstack([x,y]) # m = ([[0,2,4,6,8],\n", " # [0,1,2,3,4]])\n", "xy = np.hstack([x,y]) # xy = ([0,2,4,6,8,0,1,2,3,4])" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([0, 2, 4, 6, 8])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([0, 1, 2, 3, 4])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[0, 2, 4, 6, 8],\n", " [0, 1, 2, 3, 4]])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "m" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([0, 2, 4, 6, 8, 0, 1, 2, 3, 4])" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "xy" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Histograms" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The NumPy histogram function applied to an array returns a pair of vectors: the\n", "histogram of the array and the vector of bins. Beware: matplotlib also has a\n", "function to build histograms (called `hist`, as in Matlab) that differs from the one in NumPy. The main difference is that `pylab.hist` plots the histogram automatically, while `numpy.histogram` only generates the data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note: see [this post](http://nbviewer.ipython.org/github/htapia/scientific-python-lectures/blob/master/Lecture-4-Matplotlib.ipynb) for information on displaying plots inline within the IPython Notebook." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "# This line configures matplotlib to show figures embedded in the notebook, \n", "# instead of opening a new window for each figure. More about that later. \n", "%pylab inline" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import pylab" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Build a vector of 10000 normal deviates with variance 0.5^2 and mean 2\n", "mu, sigma = 2, 0.5\n", "v = np.random.normal(mu,sigma,10000)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(array([ 0.01022988, 0.01169129, 0.0131527 , 0.01607552, 0.01899834,\n", " 0.0263054 , 0.04384233, 0.07014773, 0.09791454, 0.10522159,\n", " 0.12714276, 0.17683073, 0.1987519 , 0.28205232, 0.34197017,\n", " 0.39604238, 0.47349716, 0.5319536 , 0.61233121, 0.69855445,\n", " 0.73655114, 0.71170715, 0.76577936, 0.84031132, 0.76577936,\n", " 0.74531961, 0.81546733, 0.71170715, 0.63279096, 0.5845644 ,\n", " 0.53049219, 0.42965483, 0.45888305, 0.39019674, 0.29082079,\n", " 0.2396714 , 0.17390791, 0.13444981, 0.10814441, 0.08330043,\n", " 0.05407221, 0.04676515, 0.0394581 , 0.02776681, 0.01899834,\n", " 0.01022988, 0.00292282, 0.01022988, 0. , 0.00146141]),\n", " array([ 0.34679319, 0.41522021, 0.48364723, 0.55207425, 0.62050127,\n", " 0.6889283 , 0.75735532, 0.82578234, 0.89420936, 0.96263638,\n", " 1.0310634 , 1.09949042, 1.16791744, 1.23634446, 1.30477148,\n", " 1.3731985 , 1.44162552, 1.51005254, 1.57847956, 1.64690658,\n", " 1.7153336 , 1.78376062, 1.85218764, 1.92061466, 1.98904169,\n", " 2.05746871, 2.12589573, 2.19432275, 2.26274977, 2.33117679,\n", " 2.39960381, 2.46803083, 2.53645785, 2.60488487, 2.67331189,\n", " 2.74173891, 2.81016593, 2.87859295, 2.94701997, 3.01544699,\n", " 3.08387401, 3.15230103, 3.22072805, 3.28915508, 3.3575821 ,\n", " 3.42600912, 3.49443614, 3.56286316, 3.63129018, 3.6997172 ,\n", " 3.76814422]),\n", " )" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot a normalized histogram with 50 bins\n", "pylab.hist(v, bins=50, normed=1) # matplotlib version (plot)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": true }, "outputs": [], "source": [ "pylab.show()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Compute the histogram with numpy and then plot it\n", "(n, bins) = numpy.histogram(v, bins=50, normed=True) # NumPy version (no plot)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pylab.plot(.5*(bins[1:]+bins[:-1]), n)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": true }, "outputs": [], "source": [ "pylab.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Conclusion" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have now completed lesson 8 Tricks and Tips." ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.9" } }, "nbformat": 4, "nbformat_minor": 0 }