{ "metadata": { "name": "Numpy+Matplotlib" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Numpy and Matplotlib" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Here I have included the code from the Python Boot Camp 2012 lecture on numpy and matplotlib. You can follow along with the material on the slides without having to manually type the code itself. The lecture was designed to provide an introduction to the numpy module (how python handles data arrays) and the matplotlib module (a python plotting module)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we want to import the appropriate modules into our name space (note this is done automatically with the \"--pylab\" flag." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The primary building block of the numpy module is the class \"ndarray\". A ndarray object represents a multidimensional, homogeneous array of fixed-sized items. An associated date-type object describes the format of each element in the array. An ndarray object is (almost) never instantiated directly, but instead using a method that returns an instance of the class." ] }, { "cell_type": "code", "collapsed": false, "input": [ "a = np.array([1, 2, 3])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "a" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 3, "text": [ "array([1, 2, 3])" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The \"ones\" and \"zeros\" methods return an array object of the requested shape and type." ] }, { "cell_type": "code", "collapsed": false, "input": [ "b = np.ones((3,2))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "b" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 5, "text": [ "array([[ 1., 1.],\n", " [ 1., 1.],\n", " [ 1., 1.]])" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "b.shape" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 6, "text": [ "(3, 2)" ] } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "c = np.zeros((1,3), int)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "c" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 8, "text": [ "array([[0, 0, 0]])" ] } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "type(c)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 9, "text": [ "numpy.ndarray" ] } ], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "c.dtype" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 10, "text": [ "dtype('int64')" ] } ], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "\"linspace\" creates a one-dimensional array running from arg1 to arg2 (with length arg3)." ] }, { "cell_type": "code", "collapsed": false, "input": [ "d = np.linspace(1,5,11)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "d" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 12, "text": [ "array([ 1. , 1.4, 1.8, 2.2, 2.6, 3. , 3.4, 3.8, 4.2, 4.6, 5. ])" ] } ], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "numpy provides a variety of methods to read and write data to disk (binary, ascii, fits, csv, etc.). These include \"loadtxt\" and \"tofile\". I haven't included these because of limitations with the Notebook." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "ndarray objects can be indexed, sliced, and iterated over much like lists. The format for slicing is still \"x1:x2:dx\"." ] }, { "cell_type": "code", "collapsed": false, "input": [ "a = np.arange(10)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 22 }, { "cell_type": "code", "collapsed": false, "input": [ "a" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 23, "text": [ "array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])" ] } ], "prompt_number": 23 }, { "cell_type": "code", "collapsed": false, "input": [ "a[2]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 24, "text": [ "2" ] } ], "prompt_number": 24 }, { "cell_type": "code", "collapsed": false, "input": [ "a[2:5]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 25, "text": [ "array([2, 3, 4])" ] } ], "prompt_number": 25 }, { "cell_type": "code", "collapsed": false, "input": [ "a[:6:2] = -1000" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 27 }, { "cell_type": "code", "collapsed": false, "input": [ "a" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 28, "text": [ "array([-1000, 1, -1000, 3, -1000, 5, 6, 7, 8, 9])" ] } ], "prompt_number": 28 }, { "cell_type": "code", "collapsed": false, "input": [ "a[::-1]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 29, "text": [ "array([ 9, 8, 7, 6, 5, -1000, 3, -1000, 1, -1000])" ] } ], "prompt_number": 29 }, { "cell_type": "code", "collapsed": false, "input": [ "a[2:-2]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 30, "text": [ "array([-1000, 3, -1000, 5, 6, 7])" ] } ], "prompt_number": 30 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Arrays can hold (almost) any type of data, as long as each individual element is identical (i.e., requires the same amount of memory). The format of the ndarray can be specified with the \"dtype\" attribute. Individual elements may be \"named\" in a structured array." ] }, { "cell_type": "code", "collapsed": false, "input": [ "x = np.zeros((2,),dtype=('i4,f4,a10'))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 31 }, { "cell_type": "code", "collapsed": false, "input": [ "x" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 32, "text": [ "array([(0, 0.0, ''), (0, 0.0, '')], \n", " dtype=[('f0', ' b" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 63, "text": [ "array([ True, False, False], dtype=bool)" ] } ], "prompt_number": 63 }, { "cell_type": "code", "collapsed": false, "input": [ "a == b" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 64, "text": [ "array([False, True, False], dtype=bool)" ] } ], "prompt_number": 64 }, { "cell_type": "code", "collapsed": false, "input": [ "c = a <= b" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 65 }, { "cell_type": "code", "collapsed": false, "input": [ "c" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 66, "text": [ "array([False, True, True], dtype=bool)" ] } ], "prompt_number": 66 }, { "cell_type": "code", "collapsed": false, "input": [ "np.logical_and(a > 0, a < 3)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 67, "text": [ "array([ True, False, False], dtype=bool)" ] } ], "prompt_number": 67 }, { "cell_type": "code", "collapsed": false, "input": [ "np.logical_or(a,b)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 68, "text": [ "array([ True, True, True], dtype=bool)" ] } ], "prompt_number": 68 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The *where* method provides a fast way to search (and extract) individual elements of an array. When called with a single (conditional) argument, the method returns an array of indicies where the conditional is met. If two additional arguments are added, more complex returns are possible." ] }, { "cell_type": "code", "collapsed": false, "input": [ "a = np.array([1, 3, 0, -5, 0], float)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 69 }, { "cell_type": "code", "collapsed": false, "input": [ "np.where(a != 0)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 70, "text": [ "(array([0, 1, 3]),)" ] } ], "prompt_number": 70 }, { "cell_type": "code", "collapsed": false, "input": [ "a[a != 0]" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 71, "text": [ "array([ 1., 3., -5.])" ] } ], "prompt_number": 71 }, { "cell_type": "code", "collapsed": false, "input": [ "np.where(a != 0.0, 1 / a, a)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 73, "text": [ "array([ 1. , 0.33333333, 0. , -0.2 , 0. ])" ] } ], "prompt_number": 73 }, { "cell_type": "code", "collapsed": false, "input": [ "x = np.arange(9.).reshape(3, 3)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 74 }, { "cell_type": "code", "collapsed": false, "input": [ "x" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 75, "text": [ "array([[ 0., 1., 2.],\n", " [ 3., 4., 5.],\n", " [ 6., 7., 8.]])" ] } ], "prompt_number": 75 }, { "cell_type": "code", "collapsed": false, "input": [ "np.where( x > 5 )" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 76, "text": [ "(array([2, 2, 2]), array([0, 1, 2]))" ] } ], "prompt_number": 76 }, { "cell_type": "markdown", "metadata": {}, "source": [ "ndarray objects provide basic statistical methods (mean, median, standard deviation, etc.)." ] }, { "cell_type": "code", "collapsed": false, "input": [ "a = np.array([[1, 2], [3, 4]])" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 77 }, { "cell_type": "code", "collapsed": false, "input": [ "np.mean(a)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 78, "text": [ "2.5" ] } ], "prompt_number": 78 }, { "cell_type": "code", "collapsed": false, "input": [ "np.mean(a, axis=0)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 79, "text": [ "array([ 2., 3.])" ] } ], "prompt_number": 79 }, { "cell_type": "code", "collapsed": false, "input": [ "np.mean(a, axis=1)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 80, "text": [ "array([ 1.5, 3.5])" ] } ], "prompt_number": 80 }, { "cell_type": "code", "collapsed": false, "input": [ "np.std(a)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 81, "text": [ "1.1180339887498949" ] } ], "prompt_number": 81 }, { "cell_type": "code", "collapsed": false, "input": [ "np.average(range(1,11), weights=range(10,0,-1))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 82, "text": [ "4.0" ] } ], "prompt_number": 82 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The *random* module contains basic random number generation, as well as a few common probability distribution functions. Many more (complex) pdfs are available within scipy." ] }, { "cell_type": "code", "collapsed": false, "input": [ "np.random.rand(5)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 83, "text": [ "array([ 0.30690353, 0.30895097, 0.21526229, 0.3493788 , 0.16837581])" ] } ], "prompt_number": 83 }, { "cell_type": "code", "collapsed": false, "input": [ "np.random.randint(5, 10)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 84, "text": [ "9" ] } ], "prompt_number": 84 }, { "cell_type": "code", "collapsed": false, "input": [ "np.random.normal(1.5, 4.0)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 85, "text": [ "3.0703190817944908" ] } ], "prompt_number": 85 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plotting is done with the *matplotlib* module. If you have used MATLAB before, the syntax should look very familiar." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import matplotlib.pylab as plt" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 86 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The simplest (but still quite powerful) method is *plot*." ] }, { "cell_type": "code", "collapsed": false, "input": [ "x = np.array([1,2,3])\n", "y = x**2\n", "plt.plot(x, y, \"ro\")" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 87, "text": [ "[]" ] }, { "output_type": "display_data", "png": "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\n" } ], "prompt_number": 87 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Another basic example." ] }, { "cell_type": "code", "collapsed": false, "input": [ "x = np.linspace(0, 2*np.pi, 300)\n", "y = np.sin(x)\n", "plt.plot(x, y)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 88, "text": [ "[]" ] }, { "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD9CAYAAACyYrxEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XucjnX+x/HXMDpgkdKwM1Mjh2acj8vWyhApatDKseXn\nEEtC2VZt28aqRTqJkhSlAyqJHCZpDdIiDDlmhBrjFKXkNMxcvz++kWS45577vr/Xdd/v5+Mxj0yu\nmfud+Pjc3+t7fb5RjuM4iIhI2CpkO4CIiASXCr2ISJhToRcRCXMq9CIiYU6FXkQkzKnQi4iEuQIV\n+h49ehATE0P16tXzvGbAgAFUqlSJmjVrkp6eXpCXExERPxSo0Hfv3p3U1NQ8f37evHls27aNjIwM\nXn75Zfr27VuQlxMRET8UqNA3atSIK664Is+fnz17Nt26dQOgQYMGHDp0iH379hXkJUVEJJ+Cukaf\nlZVFfHz8mc/j4uLYtWtXMF9SRETOER3sFzh3wkJUVNR5r8vr34uIyIVdbJJNUDv62NhYMjMzz3y+\na9cuYmNj87zecRzPfjz22GN+f+2pUw7TpjnUrOlw/fUOI0c67NyZv++Rk+Pw2WcO997rULq0w513\nOqSnBz+7Gz6UX/kjOb8vglroU1JSmDJlCgDLly+nVKlSxMTEBPMlPWfhQqhVC8aMgSeegM2bYcgQ\nuPba/H2fQoXgj3+EcePgm2+gUSNo2RLatzefi0jkKtDSTadOnVi8eDEHDhwgPj6eYcOGcfLkSQD6\n9OlDy5YtmTdvHhUrVqRYsWJMnjw5IKHDwf79cO+9sGYNPPUUtGkDgVq9KlYMBg2C3r1h9GioXRse\nfBD+9jeIDvpinYi4juMSLoril0WLFvl87cyZjhMT4zhDhjjOsWPBy3Ta9u2O07Sp4zRs6Dhbt/72\n5/OT3Y2U3y7lt8uX2hn184XWRUVF+bze5FWnTsEjj8C0aTB9OjRsGLrXzs01yzrDh8OkSXDHHaF7\nbREJHl9qpwp9iOzfDx07mqWTt9+Gq66yk2P5cmjXDvr0MX/pFNIQDBFP86V26o95CGzfDjfcAA0a\nwPz59oo8mHcRn39ucnTsCCdO2MsiIqGhQh9kX3wBN90E998PI0ZA4cK2E0G5crBoEeTkQEoKHDli\nO5GIBJMKfRD973/QvLnZVXPvvbbT/Nqll5r7BOXKQYsW8MMPthOJSLCo0AfJ6tXQujW89ppZInGj\n6GhzY7ZOHWjWDH780XYiEQkG3YwNgg0bTOGcMMEUe7dzHOjXD7ZsgXnz4PLLbScSEV9p140F27ZB\n48bmQaXOnW2n8V1ODtx9t1mvnzEDihSxnUhEfKFCH2IHD5pdLYMHw1//ajtN/p08aZ7QLVMGJk8O\n3JO6IhI82l4ZQidOwJ13Qtu23izyYLr4d981S0+jRtlOIyKBoo4+ABwHunc3O1dmzPD+Q0hZWWbP\n/wsveOMeg0gk86V2asRVADz1FKxfD0uWeL/IA8TGwvvvQ6tWkJAANWvaTiQiBaGOvoDS0sz2yc8/\nh7MO0woLU6eaMQmrV8MFTowUEYt0MzbI9uyBevXMjctbbrGdJjgGDDDz7GfO1M1ZETfSzdggOnXK\ndPK9e4dvkQezTXT3bnjuOdtJRMRf6uj99MgjsGqVecDIDfNrgmnHDrNtdNas0I5WFpGL09JNkCxd\nao7oW7sWIuVkxFmzzKlV69ZBiRK204jIaSr0QfDDD+aM17Fj4fbbbacJrT59zENVkybZTiIip6nQ\nB0G3bmYWzEsv2U4Sej/9ZP6SO33GrYjYp330Afbuu2b0cHq67SR2FC8OU6aYJ4D/+MfIWbYS8Tp1\n9D46cACqVTNr1Q0a2E5j1yOPmDEJH3ygLZcitml7ZQANHAhduqjIAzz2GHz1Fbzzju0kIuILLd34\nYM4cWLHCHAsocMklMHGiWcJp1gyuvNJ2IhG5EC3dXMQPP5glmylToEkT22ncZeBA8+vz2mu2k4hE\nLu26CYB+/cyhHBMm2E7iPocPm78EX3nFnI0rIqGnQl9Aq1bBHXfA5s1QqpTtNO40fz707w8bN8Jl\nl9lOIxJ5dDO2AHJzTTc/YoSK/IXcdpsZYzx6tO0kIpIXdfR5mDjRrD0vXRoeM+aD6euvoU4dM844\nIcF2GpHIoqUbPx08CFWqwEcfmSdB5eKGDzcPkr3/vu0kIpFFhd5PffrApZfC88/bTuIdx49D1arw\n4ovQooXtNCKRQ4XeDytXmnNSdQM2/+bMgcGDzbGKl1xiO41IZNDN2HxyHLM3XDdg/XP77VCpEjz7\nrO0kInI2dfRnmT4dnnzSnP+qG7D+2bbNHE6ycaOGnomEgpZu8uHECUhMNOe/JidbixEWHngAjh2D\n8eNtJxEJfyr0+fDUU2Yr5axZ1iKEje++g+uvhyVLICnJdhqR8KZC76MDB0xBWrrUdPVScE8/DYsX\nw+zZtpOIhDcVeh8NHGjm2YwbZ+Xlw9LppbDXXoPGjW2nEQlfKvQ+2LoVbrwRNm2CMmVC/vJhbdo0\n09mvWKGb2yLBou2VPnj4Yfjb31Tkg6FDB3MC1bRptpOIRLaI7ug//9wccr1tmznwWwJvyRJzoPqX\nX+ohKpFgUEd/Ef/8Jzz6qIp8MN10k1mrf+UV20lEIlfEdvSLF0OPHmbUgTrN4Fq9GlJSICMDiha1\nnUYkvKijz4PjwCOPwLBhKvKhULeueVr2xRdtJxGJTBHZ0c+bB3//O6xbB4ULh+QlI97GjdC0qenq\nS5SwnUYkfKijP4/cXNPNP/64inwoVa0Kt9wCzz1nO4lI5Im4jv6dd8y4gxUrzNY/CZ2vvoIGDcyz\nC6VL204jEh5C0tGnpqaSmJhIpUqVGDVq1G9+Pi0tjZIlS1K7dm1q167N448/XtCX9FtODgwdak5D\nUpEPvQoV4M9/NhNCRSR0ogvyxTk5OfTv35+FCxcSGxtL/fr1SUlJIemcSVaNGzdmtguGnsyYASVL\nmiUEsePRR81h4oMH6yE1kVApUEe/cuVKKlasSEJCAkWKFKFjx47MOs/4RzesDuXmmk7+X/9SN29T\nXBy0b6/DSURCqUCFPisri/j4+DOfx8XFkZWV9atroqKi+Oyzz6hZsyYtW7Zk06ZNBXlJv82cCZdd\nBrfeauXl5SwPPQQTJphxxiISfAVauonyoTWuU6cOmZmZFC1alPnz59OmTRu2bt163muHDh165sfJ\nyckkB+gEkNxc+Pe/zU4bdfP2XXsttG0LY8aYZxlExHdpaWmkpaXl62sKtOtm+fLlDB06lNTUVABG\njBhBoUKFGDJkSJ5fU758eVavXk3pc7ZdBHPXzaxZ5ibsmjUq9G5xegfOV1+Z+yYi4p+g77qpV68e\nGRkZ7Ny5k+zsbKZPn05KSsqvrtm3b9+ZECtXrsRxnN8U+WByHNPNa23eXSpUgJYtYexY20lEwl+B\nlm6io6MZN24cLVq0ICcnh549e5KUlMSECRMA6NOnD++99x7jx48nOjqaokWLMi3EM2vnzYOTJ6F1\n65C+rPjgkUegUSNz8Mvvfmc7jUj4CusHphzHzFh58EFo1y6g31oCpFMnqF3bjKQQkfyL+BOmPvoI\nHngA1q/XCUdutWEDNGtm1uqLFbOdRsR7In7WzeOPm5nzKvLuVa0a/OlP8PLLtpOIhK+w7eg//fSX\nk42iC3QnQoJt7VpzY3bHDrj0UttpRLwlojv6UaPM2ryKvPvVqmXGIrzxhu0kIuEpLDv60+u+O3bo\nmECvSEuD3r3NiV8aHy3iu4jt6J980mzZU5H3jsaN4Yor4IMPbCcRCT9h19F//TXUqWN2cZQqFYBg\nEjLvvw8jR+qsAJH8iMiO/umnoWdPFXkvatMGfvzRLOOISOCEVUd/4ABUrmzW6H//+wAFk5B69VV4\n9134eXySiFxExHX0Y8eaE4xU5L3r7rvNA25r19pOIhI+wqaj/+knKF8eli0zXb141+jRkJ4Ob79t\nO4mI+0XUCITnnjNF/t13AxhKrPjxR7juOvj8c/OXt4jkLWIK/alTpjDMmAH16wc4mFjx8MNw+DCM\nG2c7iYi7RUyhnzYNXnwRliwJcCixZu9eSEqCjAy46irbaUTcKyJuxjqO2VI5eLDtJBJIZcua4wZf\nesl2EhHv83xHv2SJ2Tf/5ZeaUhluNmyA5s1h504NOxPJS0R09M88A/ffryIfjqpVgxo1YOpU20lE\nvM3THX1GBtxwgxl7ULRokIKJVQsWwN/+BuvWaSyCyPmEfUf/7LPQp4+KfDhr3hxyc2HhQttJRLzL\nsx39wYNQsaIZa1u2bBCDiXWTJsE772gsgsj5hHVH/9JLZgiWinz469LFLN1s2GA7iYg3ebKjP3EC\nEhLM+m316sHNJe4wfLi5F/PKK7aTiLhL2D4wNXmyeUjqo4+CHEpc49tvzQyjLVsgJsZ2GhH3CMul\nG8cxWyr1gFRkKVMGOnQwT0CLSP54rtB//LH5Z/PmdnNI6A0aZO7NHDtmO4mIt3iu0D/zDDzwgPZU\nR6LERDO07o03bCcR8RZPrdFv3gzJyeam3GWXhSaXuMuiRdCvH2zcqKehRSAM1+jHjjUPSKnIR67k\nZLjkkl+W8ETk4jzT0X//vZk5v2kTlCsXwmDiOpMmwXvvwbx5tpOI2BdWHf2kSdCypYq8QOfOsGqV\nmVgqIhfniY4+J8eMO5g+Hf7whxAHE1d65BH44QedQCUSNh397Nlm1IGKvJzWrx+89ZYp9iJyYZ4o\n9M8/DwMG2E4hbhIbC7feapb0ROTCXL9088UXcNtt5pShIkVCn0vca/lys16fkQGFC9tOI2JHWCzd\njBlj3qaryMu5GjY0oxHmzLGdRMTdXN3RHzgAlSrB1q3mD7TIud56yyzffPKJ7SQidni+o3/5ZWjb\nVkVe8nbXXeaJ6fXrbScRcS/XdvQnT0L58jB3LtSsaTGYuN7w4fDNNzBxou0kIqHn6Y5+xgyzd15F\nXi6mTx/zpOyBA7aTiLiTawu9tlSKr66+Glq3VkcvkhdXLt18/rlZe/3qK22bE9+kp0NKCmzfrh1a\nElk8u3QzZgz0768iL76rXdvc05k503YSEfdxXUe/Zw9UqWI6syuusJ1KvGTGDHMwzbJltpOIhI4n\nO/qXXoKOHVXkJf9at4Zdu8xkSxH5has6+uPHHa691pwilJRkO5F40ZNPwoYNMGWK7SQioeFLRx8d\noiw+mT7dbKdUkRd/9eoFFSrA3r1m4qmIuGzpZswYbamUgildGjp0MEuAImIUuNCnpqaSmJhIpUqV\nGDVq1HmvGTBgAJUqVaJmzZqkp6fn+b0OHzaTKkUKYsAAU+hPnLCdRMQdClToc3Jy6N+/P6mpqWza\ntImpU6eyefPmX10zb948tm3bRkZGBi+//DJ9+/bN8/vddx8UctV7DPGiKlWgenV45x3bSUTcoUBl\ndeXKlVSsWJGEhASKFClCx44dmTVr1q+umT17Nt26dQOgQYMGHDp0iH379p33+/18mUiBDRxolgLd\nsdVAxK4CFfqsrCzi4+PPfB4XF0dWVtZFr9m1a9d5v1+JEgVJI/KLli3h0CH43/9sJ5Fwc+gQfPaZ\n7RT5U6BdN1FRUT5dd+7Wn7y+bujQoWd+nJycTHJysr/RJMIVKmSWAseMgRtusJ1GwsmkSbB6tb3f\nV2lpaaSlpeXrawpU6GNjY8nMzDzzeWZmJnFxcRe8ZteuXcTGxp73+51d6EUKqnt3GDYMMjPhrDeV\nIn7LyYFx4+Dtt+1lOLcJHjZs2EW/pkBLN/Xq1SMjI4OdO3eSnZ3N9OnTSUlJ+dU1KSkpTPn56ZXl\ny5dTqlQpYmJiCvKyIj4pUQL+8hcYP952EgkXc+fClVdCgwa2k+RPgTr66Ohoxo0bR4sWLcjJyaFn\nz54kJSUxYcIEAPr06UPLli2ZN28eFStWpFixYkyePDkgwUV80b8/3HgjPPooXH657TTidc8/b270\n+7hq7RquGoHgkigSZm6/Hdq0MU/NivhrwwZo3hy+/houucR2ml94cqiZSKANHGg6MfURUhBjx8Jf\n/+quIu8rdfQS9hwHqlaFF16AJk1spxEv+u47M0NpyxZw2y1GdfQimPXUAQPMVksRf0ycaE4wc1uR\n95U6eokIR47AtdeaYyrLl7edRrzk1Cm47jpzelndurbT/JY6epGfFStm9tWPG2c7iXjNBx/ANde4\ns8j7Sh29RIyvv4Y6dcw/ixe3nUa8olEjs/R31122k5yfOnqRs1x7LSQn6/Qp8d2aNbBzp9me62Uq\n9BJRBgwwWy1zc20nES94/nm4914oUsR2koJRoZeIctNNcNllsGCB7STidvv3w6xZcM89tpMUnAq9\nRJSoqF8eoBK5kAkToF07M9vG63QzViLO8eNmvX7JErj+ettpxI2ysyEhAT76yJxW5ma6GStyHpdd\nZt6Oa6ul5OW99yApyf1F3lfq6CUiZWWZP8Q7dkDJkrbTiNs0aAD/+Ae0bm07ycWpoxfJQ2wstGhh\nTgsSOduKFfDtt2bqabhQoZeINXCgWb7JybGdRNxkzBhzDGXhwraTBI4KvUSshg3hqqvMqUEiYJb0\nUlPNuIxwokIvEU1TLeVsL70EnTtDqVK2kwSWbsZKRDu9jW7BAqhWzXYascmr2251M1bkIi65BPr2\n1QNUAlOnmqF3XiryvlJHLxFv3z5ITIRt28LjKUjJP8eBGjXgmWfMubBeoo5exAcxMWa/9Cuv2E4i\ntixcaP7ZrJndHMGijl4EM462TRv46ivvTyqU/LvtNmjf3pu7bdTRi/ioTh1zxOCMGbaTSKht3Ahr\n15rdNuFKhV7kZ4MHw9NPm/VaiRzPPQf9+sGll9pOEjxauhH5WW6uGWQ1caKZWy/hb/9+s8tm61Yo\nU8Z2Gv9o6UYkHwoVgvvvh6eesp1EQmX8eLM279Ui7yt19CJnOXrUPEC1dGl47qeWXxw/bv5fL1pk\n3sl5lTp6kXwqWtQ8QPXss7aTSLC99RbUrevtIu8rdfQi5wiHdVu5MMcxIy+efx5uvtl2moJRRy/i\nh6uvNmeFjh9vO4kEy4IFEB0NTZvaThIa6uhFzmPzZmjSBHbuNEcPSnhp0cLsm+/WzXaSglNHL+Kn\npCSzfvvmm7aTSKBt2ADr10PHjraThI4KvUgeBg82Q65yc20nkUB66im4997wfkDqXCr0Inlo0sQU\ng9RU20kkUDIzYfZs8yRsJFGhF8lDVNQvYxEkPDz7rBlcdsUVtpOElm7GilzAyZNQoQLMnGnW7MW7\nvv/e/L9ctw7i422nCRzdjBUpoCJF4IEHYNQo20mkoF58EVJSwqvI+0odvchF/PQTXHcdfPopVK5s\nO43449gxM4b6k0+galXbaQJLHb1IABQvbm7ejR5tO4n46/XXoX798CvyvlJHL+KDgwehUiWz/zo2\n1nYayY+cHDPS4rXX4E9/sp0m8NTRiwTIlVeapyg17Mx73n/fjLW48UbbSexRRy/io8xMqFkTtm2D\n0qVtpxFfOI5Zsnn0UXMAfDhSRy8SQPHxpli8+KLtJOKr//4XjhyBO+6wncQudfQi+bB5MyQnw44d\nZna9uFvTptC1K/zf/9lOEjzq6EUCLCkJbrgBXn3VdhK5mGXLzPTRLl1sJ7FPHb1IPq1YYc4Z3bbN\nPFAl7nTrrXDnndC7t+0kwaWOXiQIGjQwWy3feMN2EsnL55/Dxo3hMW8+EPzu6L/77js6dOjA119/\nTUJCAu+88w6lSpX6zXUJCQmUKFGCwoULU6RIEVauXHn+IOroxUOWLDHDsbZsUVfvRq1bQ7NmcN99\ntpMEX1A7+pEjR9K8eXO2bt3KzTffzMiRI/MMkZaWRnp6ep5FXsRrbroJrrnGHDAt7rJunenoe/Wy\nncQ9/O7oExMTWbx4MTExMezdu5fk5GS2bNnym+vKly/PqlWruPLKKy8cRB29eExamikmW7aY80fF\nHdq3N8trgwfbThIaQe3o9+3bR0xMDAAxMTHs27cvzxDNmjWjXr16TJw40d+XE3Gd5GQzDuHtt20n\nkdM2b4bFi6FPH9tJ3OWCfUjz5s3Zu3fvb/79E0888avPo6KiiIqKOu/3WLZsGeXKlePbb7+lefPm\nJCYm0qhRo/NeO3To0DM/Tk5OJjk5+SLxRex67DH461/NFr7ChW2nkSeegIEDzSC6cJWWlkZaWlq+\nvqZASzdpaWmULVuWPXv20KRJk/Mu3Zxt2LBhFC9enMHneU+lpRvxIseBRo2gb1/t17Zt2zZo2BC2\nb4cSJWynCZ2gLt2kpKTw+uuvA/D666/Tpk2b31xz9OhRDh8+DMCRI0dYsGAB1atX9/clRVwnKsp0\n9cOHmymJYs/w4dC/f2QVeV8VaHtl+/bt+eabb361vXL37t3cc889zJ07l+3bt3PnnXcCcOrUKbp0\n6cLDDz98/iDq6MWjHMdMRrzvPujUyXaayLR5s9kJtW0blCxpO01o+VI79WSsSAB89BHcf7+ZV6+1\n+tDr0AFq14aHHrKdJPT0ZKxIiNxyC5QqBdOm2U4SedatMzttIuHhKH+poxcJkLQ06NnTLCNccont\nNJGjdWto0gQGDbKdxA519CIhlJwMFStqsmUorVwJq1ebLa6SN3X0IgG0apXpMDMyNK8+FFq0gLZt\nI7vQq6MXCbF69eCPf4SxY20nCX9Ll8LWrdCjh+0k7qeOXiTATm/1y8gwN2gl8BzHHADTt685QSqS\nqaMXsSApyZxROnq07STh6/334dgxuPtu20m8QR29SBB8843Z171hA5QrZztNeDl5EqpUMYe0N29u\nO4196uhFLLnmGnMwyb/+ZTtJ+Hn5ZbjuOhX5/FBHLxIkhw7B9dfDxx9DjRq204SHH3+EypXNk8g1\na9pO4w7q6EUsKlUKHn3UHIChHiYwnnzSHPqtIp8/6uhFgujkSaheHZ55Blq2tJ3G27KyzDujtWsh\nPt52GvfQUDMRF5gzBx58EL74QgeJF0S3bvD738OIEbaTuIuWbkRcoFUrc+SgTtL032efwSefwD/+\nYTuJN6mjFwmBdevMhMsvv9RDVPmVkwN/+AM88IBO8TofdfQiLlGzppnJ8s9/2k7iPa++auYGde5s\nO4l3qaMXCZHvvjMP+sydC3Xr2k7jDd9/D4mJZjtlrVq207iTbsaKuMzkyTB+PPzvfzqJyhf33WeW\nbl580XYS91KhF3GZ3Fxo1MgM4urTx3Yad/viC/P066ZNcOWVttO4lwq9iAt98QU0awYbN0KZMrbT\nuFNurjlwvXt36N3bdhp3081YEReqUcPsHhkyxHYS9xo/HqKjoVcv20nCgzp6EQt+/NHcmH3rLWjc\n2HYad9m1y0z+XLLEjHyWC1NHL+JSJUrACy+YjvXoUdtp3MNx4N57oX9/FflAUqEXsaR1a6hf3ww+\nE2PGDHMy10MP2U4SXrR0I2LRgQNm6NnMmdCwoe00du3bZx4smznTnLsrvtHSjYjLXXUVPP+82V1y\n/LjtNPY4jtlu2r27inwwqNCLWNaunenqH37YdhJ7pkyBHTtg6FDbScKTlm5EXOC778yyxSuvQIsW\nttOEVmYm1KkDCxfqQBF/aOlGxCNKlzZdbY8e8O23ttOEzqlTcPfdZjKlinzwqKMXcZGHHjKP/M+a\nBVFRttME37/+BcuXQ2oqFFLb6ReNQBDxmOxs8+h/ly4waJDtNMH1ySdm5s+aNRATYzuNd6nQi3jQ\njh1mq+WMGfCnP9lOExx795pRzVOmwM03207jbVqjF/Gg8uXhtdegY0dTEMNNdjZ06GCeClaRDw11\n9CIuNXQoLFpkdqOE06HifftCVhZ88IHW5QNBSzciHpabCykp5mDxl14Kj5uz48fDuHHm4JUSJWyn\nCQ8q9CIed/iwOaikc2f4+99tpymYRYvMctSyZVCxou004cOX2hkdoiwi4off/Q7mzDFjAcqXh7vu\nsp3IP+vWmXX5adNU5G1QoRdxubg4+PBDc6xeTAzcdJPtRPmzfTu0bGmWbJo2tZ0mMulWiIgH1Kpl\nuuF27cz6tlfs2we33AL//Ce0b287TeRSoRfxiJtvhtdfN3PsV62ynebi9uwxHXzXrmanjdijQi/i\nIbfdBhMnwu23u7vYZ2aaIxI7dTJjDsQurdGLeEzr1marZcuW8MYb7pt2uX27effRvz8MHmw7jYA6\nehFPSkkxJzF17WrGCLjFp5+aWT1//7uKvJtoH72Ih23ebJZzOnWC4cMh2uJ79MmTYcgQd77LCGd6\nYEokAuzfb2a6nzgBU6fC738f2tc/fhwefNCMGv7wQ0hMDO3rRzoNNROJAFdfDfPnQ7NmUK+eKbah\n8sUXUL++2Ua5cqWKvFupoxcJI4sXm6mQderAM8+YOTnBcOQIDBtmpmw++SR06xYes3i8KKgd/bvv\nvkvVqlUpXLgwa9asyfO61NRUEhMTqVSpEqNGjfL35VwvLS3NdgS/eTk7KP/ZGjc2XXaFClCjhnlQ\n6dChgH17srPhhRegcmXYvRvWr4eEhDRPF3mv//7xhd+Fvnr16sycOZObLvA8dk5ODv379yc1NZVN\nmzYxdepUNm/e7O9LupqXf7N4OTso/7kuvxz+8x9ITzfF+LrrzGlVBfmjt3cvPP64+V4ffgizZ8Ob\nb5qRDPr1dz+/C31iYiKVK1e+4DUrV66kYsWKJCQkUKRIETp27MisWbP8fUkRyYdrroFJk0yHf/nl\nZg2/dm3zAFNaGvz4Y95fm51t1tyfeQaaNDFr7zt3wty55qZr3bqh+q+QQAjqZqysrCzi4+PPfB4X\nF8eKFSuC+ZIico64OBgxwnTkS5fCRx+ZbZDr10Pp0maXTsmS5tpjx8y7gKwsuP56syd+0CCzXfKy\ny+z+d0gBOBfQrFkzp1q1ar/5mD179plrkpOTndWrV5/369977z2nV69eZz5/4403nP79+5/3WkAf\n+tCHPvThx8fFXLCj//jjjy/00xcVGxtLZmbmmc8zMzOJi4s777XacSMiEhwB2UefV5GuV68eGRkZ\n7Ny5k+zsbKZPn05KSkogXlJERHzkd6GfOXMm8fHxLF++nFatWnHbbbcBsHv3blq1agVAdHQ048aN\no0WLFlQ4IhujAAAEYElEQVSpUoUOHTqQlJQUmOQiIuIT6w9MpaamMmjQIHJycujVqxdDhgyxGSdf\nevTowdy5c7n66qtZv3697Tj5lpmZSdeuXdm/fz9RUVH07t2bAQMG2I7lk+PHj9O4cWNOnDhBdnY2\nrVu3ZsSIEbZj5VtOTg716tUjLi6OD0P5SGsAJCQkUKJECQoXLkyRIkVYuXKl7Uj5cujQIXr16sXG\njRuJiopi0qRJNGzY0HYsn3z55Zd07NjxzOfbt29n+PDhef/5vegqfhCdOnXKqVChgrNjxw4nOzvb\nqVmzprNp0yabkfJlyZIlzpo1a5xq1arZjuKXPXv2OOnp6Y7jOM7hw4edypUre+rX/8iRI47jOM7J\nkyedBg0aOEuXLrWcKP+efvppp3Pnzs4dd9xhO0q+JSQkOAcPHrQdw29du3Z1Xn31VcdxzO+hQ4cO\nWU7kn5ycHKds2bLON998k+c1VmfdeH2ffaNGjbjiiitsx/Bb2bJlqVWrFgDFixcnKSmJ3bt3W07l\nu6JFiwKQnZ1NTk4OpUuXtpwof3bt2sW8efPo1auXZzcjeDX3Dz/8wNKlS+nRowdglplLnt5j6jEL\nFy6kQoUKv9rKfi6rhf58++yzsrIsJopcO3fuJD09nQYNGtiO4rPc3Fxq1apFTEwMTZo0oUqVKrYj\n5cv999/P6NGjKVTIm7MFo6KiaNasGfXq1WPixIm24+TLjh07KFOmDN27d6dOnTrcc889HD161HYs\nv0ybNo3OnTtf8Bqrv8OivDwgI4z89NNPtGvXjjFjxlC8eHHbcXxWqFAh1q5dy65du1iyZImnHmWf\nM2cOV199NbVr1/ZsV7xs2TLS09OZP38+L7zwAkuXLrUdyWenTp1izZo19OvXjzVr1lCsWDFGjhxp\nO1a+ZWdn8+GHH3LXXXdd8DqrhT4/++wlOE6ePMmf//xn7r77btq0aWM7jl9KlixJq1atWOXmQ1TP\n8dlnnzF79mzKly9Pp06d+O9//0vXrl1tx8qXcuXKAVCmTBnatm3rqZuxcXFxxMXFUb9+fQDatWt3\nweGMbjV//nzq1q1LmTJlLnid1UKvffZ2OY5Dz549qVKlCoMGDbIdJ18OHDjAoZ/HMh47doyPP/6Y\n2rVrW07lu//85z9kZmayY8cOpk2bRtOmTZnipjMBL+Lo0aMcPnwYgCNHjrBgwQKqV69uOZXvypYt\nS3x8PFu3bgXMOnfVqlUtp8q/qVOn0qlTp4teZ/Vw8LP32efk5NCzZ09P7bPv1KkTixcv5uDBg8TH\nx/Pvf/+b7t27247ls2XLlvHmm29So0aNM0VyxIgR3HrrrZaTXdyePXvo1q0bubm55Obm8pe//IWb\nb77Zdiy/eW0Zc9++fbRt2xYwyyBdunThlltusZwqf8aOHUuXLl3Izs6mQoUKTJ482XakfDly5AgL\nFy706f6I9X30IiISXN683S8iIj5ToRcRCXMq9CIiYU6FXkQkzKnQi4iEORV6EZEw9/9gF7yM4s2q\nyQAAAABJRU5ErkJggg==\n" } ], "prompt_number": 88 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's a more realistic plot, including how to modify axis labels, create a legend, etc." ] }, { "cell_type": "code", "collapsed": false, "input": [ "x = np.linspace(0, 2*np.pi, 300)\n", "y = np.sin(x)\n", "y2 = np.sin(x**2)\n", "plt.plot(x, y, label=r'$\\sin(x)$')\n", "plt.plot(x, y2, label=r'$\\sin(x^2)$')\n", "plt.title('Some functions')\n", "plt.xlabel('x')\n", "plt.ylabel('y')\n", "plt.grid()\n", "plt.legend()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 91, "text": [ "" ] }, { "output_type": "display_data", "png": "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\nTkSuQmCC\n" } ], "prompt_number": 91 }, { "cell_type": "markdown", "metadata": {}, "source": [ "numpy also provides capabilities for (least squares) polynomial fitting." ] }, { "cell_type": "code", "collapsed": false, "input": [ "x = np.array([0.0, 1.0, 2.0, 3.0, 4.0, 5.0])\n", "y = np.array([0.0, 0.8, 0.9, 0.1, -0.8, -1.0])\n", "z = np.polyfit(x, y, 3)\n", "p = np.poly1d(z)\n", "p30 = np.poly1d(np.polyfit(x, y, 30))\n", "xp = np.linspace(-2, 6, 100)\n", "plt.plot(x, y, '.', xp, p(xp), '-', xp, p30(xp), '--')\n", "plt.ylim(-2,2)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stderr", "text": [ "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/lib/polynomial.py:560: RankWarning: Polyfit may be poorly conditioned\n", " warnings.warn(msg, RankWarning)\n" ] }, { "output_type": "pyout", "prompt_number": 92, "text": [ "(-2, 2)" ] }, { "output_type": "display_data", "png": "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\n" } ], "prompt_number": 92 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here's an example of the histogram plotting method (as well as the random number generation)." ] }, { "cell_type": "code", "collapsed": false, "input": [ "mu, sigma = 0, 0.1\n", "s = np.random.normal(mu, sigma, 1000)\n", "count, bins, ignored = plt.hist(s, 30, normed=True)\n", "plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) * np.exp( - (bins - mu)**2 / (2 * sigma**2) ), color='r')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 93, "text": [ "[]" ] }, { "output_type": "display_data", "png": "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\n" } ], "prompt_number": 93 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Probably the best way to learn about making new plots is looking at the \n", "Matplotlib Gallery." ] } ], "metadata": {} } ] }