Source

ml-workshop / 01-Numpy.ipynb

Full commit
{
 "metadata": {
  "name": "01-Numpy"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "### --pylab creates some shortcuts for us"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "np"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "pyout",
       "prompt_number": 1,
       "text": [
        "<module 'numpy' from '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/__init__.pyc'>"
       ]
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "plt"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "pyout",
       "prompt_number": 2,
       "text": [
        "<module 'matplotlib.pyplot' from '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/pyplot.pyc'>"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "### I feel the need ... the need for speed"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "x, y = np.random.random(1000000), np.random.random(1000000)\n",
      "%timeit np.dot(x, y)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "1000 loops, best of 3: 1.55 ms per loop\n"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "### Array operations"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "a = np.array([[0, 1, 2]] * 4)\n",
      "a"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "pyout",
       "prompt_number": 4,
       "text": [
        "array([[0, 1, 2],\n",
        "       [0, 1, 2],\n",
        "       [0, 1, 2],\n",
        "       [0, 1, 2]])"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "a.shape"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "pyout",
       "prompt_number": 5,
       "text": [
        "(4, 3)"
       ]
      }
     ],
     "prompt_number": 5
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "a.reshape(3, 4)  # Will create a new \"copy\""
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "pyout",
       "prompt_number": 6,
       "text": [
        "array([[0, 1, 2, 0],\n",
        "       [1, 2, 0, 1],\n",
        "       [2, 0, 1, 2]])"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "a"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "pyout",
       "prompt_number": 7,
       "text": [
        "array([[0, 1, 2],\n",
        "       [0, 1, 2],\n",
        "       [0, 1, 2],\n",
        "       [0, 1, 2]])"
       ]
      }
     ],
     "prompt_number": 7
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "a.ravel()  # Flatten"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "pyout",
       "prompt_number": 8,
       "text": [
        "array([0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2])"
       ]
      }
     ],
     "prompt_number": 8
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "a[:,1]  # Select 1st column"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "pyout",
       "prompt_number": 9,
       "text": [
        "array([1, 1, 1, 1])"
       ]
      }
     ],
     "prompt_number": 9
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "a[:,0:2]"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "pyout",
       "prompt_number": 10,
       "text": [
        "array([[0, 1],\n",
        "       [0, 1],\n",
        "       [0, 1],\n",
        "       [0, 1]])"
       ]
      }
     ],
     "prompt_number": 10
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "### Plotting"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "xs = np.linspace(-10, 10)\n",
      "plt.plot(xs, np.sin(xs))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "pyout",
       "prompt_number": 11,
       "text": [
        "[<matplotlib.lines.Line2D at 0x106f7a750>]"
       ]
      },
      {
       "output_type": "display_data",
       "png": "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\nJfiaDJz58+dj9OjR3X62adMm5ObmAgByc3Ox0YdWp1IuPTpx4kS3Kp+YmBjU1tYKjEhNfvvb3yIj\nIwPLly/HWX93uXA5tbW1iO2yhJSvQeN4PB4sXrwYs2bNwh/+8AfR4TiChoYGREZGAgAiIyPR0NAw\n4Hv6Ldk0A6O1/jq+1vy7CW9/22effRYPPvggnnzySQDAT37yE/zoRz/C69wX2mf4ejOf7du3Iyoq\nCo2NjcjOzkZKSgrmz58vOizH4PF4fLpuLRf9QGr9e9b319TUIJp3UO6Fr3/bBx54wK8bLMNrTKwg\nKioKABAREYG77roLRUVFLPoGiYyMRH19PcaPH4+6ujqM87aZQReksXe6en05OTl466230Nraiqqq\nKpSXl2POnDkCo1OPurq6q//esGED0tPTBUajHrzGxFwuXLiA8+fPAwCam5uxdetWviZNICcnB6tX\nrwYArF69Gkt92fTDsvoiH/jrX/+qxcTEaIMHD9YiIyO1W2655ervnn32WS0+Pl5LTk7W8vPzBUap\nJt/+9re19PR0bdq0adqdd96p1dfXiw5JOTZv3qwlJSVp8fHx2nPPPSc6HKWprKzUMjIytIyMDG3q\n1Kn89wyAZcuWaVFRUVpISIgWExOjvfHGG9rp06e1RYsW+VWyKcV2iQzDMIw9SGPvMAzDMNbDos8w\nDOMiWPQZhmFcBIs+wzCMi2DRZxiGcREs+gzDMC7i/wFa4fKS4KyA7QAAAABJRU5ErkJggg==\n"
      }
     ],
     "prompt_number": 11
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "plt.hist(np.random.randn(1000), bins=20)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "pyout",
       "prompt_number": 12,
       "text": [
        "(array([  5,   4,   4,  14,  40,  48,  81,  96, 107, 130, 121, 108,  90,\n",
        "        68,  35,  25,  13,   7,   3,   1]),\n",
        " array([-3.15881716, -2.84097859, -2.52314001, -2.20530144, -1.88746287,\n",
        "       -1.56962429, -1.25178572, -0.93394714, -0.61610857, -0.29826999,\n",
        "        0.01956858,  0.33740716,  0.65524573,  0.97308431,  1.29092288,\n",
        "        1.60876146,  1.92660003,  2.24443861,  2.56227718,  2.88011576,\n",
        "        3.19795433]),\n",
        " <a list of 20 Patch objects>)"
       ]
      },
      {
       "output_type": "display_data",
       "png": "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\nTif/zsfPmHq9dW9xLfXxvvHp9L5SAHBCXJdfsrOz1dXVFflzV1eXcnJy4jkFACCKuJb6l770JV28\neFGdnZ0aGhrSoUOHVFVVFc8pAABRxHX5JS0tTS+99JJWrFih4eFhbdy4UYWFhfGcAgAQRdzfp75y\n5Uq98847+uc//6nt27ff83l79+7VjBkzFA6H4x0hLnbs2KHi4mKVlJSovLx8xLJSKnnuuedUWFio\n4uJirVq1SleuXHE60ph+9atfaf78+frEJz6hs2fPOh1nlKlwfcWGDRvkdrtVVFTkdJSourq6tHz5\ncs2fP18LFizQvn37nI40phs3bqisrEwlJSXyeDxR+8ppw8PDKi0tVWVl5fhPthxw6dIla8WKFVZe\nXp7173//24kI47p69Wrk8b59+6yNGzc6mObejh49ag0PD1uWZVnPP/+89fzzzzucaGwXLlyw3nnn\nHcvr9VpvvfWW03FGuHXrlvXII49YwWDQGhoasoqLi6329nanY43yhz/8wTp79qy1YMECp6NE1dvb\na507d86yLMsaHBy08vPzU/Lv07Is6z//+Y9lWZZ18+ZNq6yszHrjjTccTjS2vXv3WmvXrrUqKyvH\nfa4j2wQ8++yz2r17txNTT9j9998feXzt2jU9+OCDDqa5N5/Ppxkz7vxnLCsrU3d3t8OJxlZQUKD8\n/HynY4xpqlxfsWzZMs2ZM8fpGOPKyspSSUmJJGnWrFkqLCzU5cuXHU41tk9/+tOSpKGhIQ0PDysj\nI/UuNOru7lZra6s2bdo0oXcQJr3Um5ublZOTo4ULFyZ76ph973vf08MPPyy/369t27Y5HWdcL7/8\nsp544gmnY0w5Y11f0dPT42Aic3R2durcuXMqKytzOsqYbt++rZKSErndbi1fvlwej8fpSKNs3bpV\ne/bsiZy8jSchW+/6fD719fWNOr5z5041Njbq6NGjkWMT+T9Potwr565du1RZWamdO3dq586dampq\n0tatW3XgwAEHUo6fU7rzd3vfffdp7dq1yY4XMZGcqWgqXVgylVy7dk1r1qzRiy++qFmzZjkdZ0wz\nZszQX/7yF125ckUrVqxQIBCQ1+t1OlbEq6++qszMTJWWlk54n5qElPqxY8fGPP63v/1NwWBQxcXF\nku78s2LRokU6ffq0MjMzExElqnvl/Li1a9c6egY8Xs5XXnlFra2tev3115OUaGwT/ftMNVxfEX83\nb97U6tWr9fTTT6u6utrpOON64IEH9OSTT+rMmTMpVeonT55US0uLWltbdePGDV29elXf/OY39bOf\n/ezegxK+wh9FKv+itKOjI/J437591tNPP+1gmnt77bXXLI/HY7333ntOR5kQr9drnTlzxukYI9y8\nedP6/Oc/bwWDQeuDDz5I2V+UWpZlBYPBlP9F6e3bt61169ZZW7ZscTpKVO+9957V399vWZZlXb9+\n3Vq2bJl1/Phxh1PdWyAQsL72ta+N+zxH91NP5X/2bt++XUVFRSopKVEgENDevXudjjSmZ555Rteu\nXZPP51Npaak2b97sdKQx/eY3v1Fubq7efPNNPfnkk1q5cqXTkSI+en2Fx+PR17/+9ZS8vqK2tlZL\nly5VR0eHcnNzHVsOHM+f/vQn/eIXv9Dvf/97lZaWqrS0VG1tbU7HGqW3t1ePP/64SkpKVFZWpsrK\nSpWXlzsdK6qJdGZS71EKAEgs7nwEAAah1AHAIJQ6ABiEUgcAg1DqAGAQSh0ADPL/xLgWV8dKTsgA\nAAAASUVORK5CYII=\n"
      }
     ],
     "prompt_number": 12
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "### Two Plots or More"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "fig = plt.figure()\n",
      "ax = fig.add_subplot(111)\n",
      "xs = np.linspace(-np.pi, np.pi)\n",
      "ax.plot(xs, np.sin(xs))\n",
      "ax.plot(xs, np.sort(xs))\n",
      "ax.set_ylabel('$sin(x)_{-\\pi<x<\\pi}$')  # I can haz LaTex"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "pyout",
       "prompt_number": 13,
       "text": [
        "<matplotlib.text.Text at 0x106fde2d0>"
       ]
      },
      {
       "output_type": "display_data",
       "png": "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\n"
      }
     ],
     "prompt_number": 13
    }
   ],
   "metadata": {}
  }
 ]
}