Skip to content

Instantly share code, notes, and snippets.

@chuttenh
Last active March 20, 2017 17:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chuttenh/3c9a6a2ed573e344cf47 to your computer and use it in GitHub Desktop.
Save chuttenh/3c9a6a2ed573e344cf47 to your computer and use it in GitHub Desktop.
Genomic Data Manipulation
.ipynb_checkpoints
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Manipulating data elements\n",
"---\n",
"## Sets\n",
"\n",
"Almost everything we've discussed so far in class can be thought of as ways to visualize, manipulate, summarize, or compare lists of numbers. It's useful to distinguish between a few different kinds of number lists that represent different types of data. The first, which we won't use much, is a **set**, an unordered collection of elements in which each is represented at most once:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"set_one = set([1, 2, 3, 4, 5])\n",
"set_one"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 10,
"text": [
"{1, 2, 3, 4, 5}"
]
}
],
"prompt_number": 10
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"set_two = set([3, 5, 1, 2, 4])\n",
"set_two"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 2,
"text": [
"{1, 2, 3, 4, 5}"
]
}
],
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"No matter how we \"see\" the ordering of elements in a set, they're the same to the computer (and to the underlying mathematics):"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"set_one == set_two"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 3,
"text": [
"True"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Sets are typically used to capture the occurrence of events - that is, did an outcome happen (included the set) or not (excluded from the set). This definition holds true for numbers, names, or anything else you'd like to put in a set. You can then easily consider the usual range of set operations:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Intersection: which four-nucleotide transcription factor binding sites occur\n",
"# in both of two genes' promoters?\n",
"set([\"acct\", \"gact\", \"gggc\", \"tata\"]) & set([\"gaga\", \"acct\", \"tata\", \"ttta\"])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 4,
"text": [
"{'acct', 'tata'}"
]
}
],
"prompt_number": 4
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Union: what numbers can be rolled from a six and an eight sided die?\n",
"set([4, 2, 5, 1, 6, 3]) | set([8, 7, 6, 5, 4, 3, 2, 1])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 5,
"text": [
"{1, 2, 3, 4, 5, 6, 7, 8}"
]
}
],
"prompt_number": 5
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Difference: which transcription factor binding sites occur in one gene's\n",
"# promoter but not a second gene's?\n",
"set([\"acct\", \"gact\", \"gggc\", \"tata\"]) - set([\"gaga\", \"acct\", \"tata\", \"ttta\"])"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 6,
"text": [
"{'gact', 'gggc'}"
]
}
],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Cardinality: how many elements are common between two genes' promoters?\n",
"set_one = set([\"acct\", \"gact\", \"gggc\", \"tata\"])\n",
"set_two = set([\"gaga\", \"acct\", \"tata\", \"ttta\"])\n",
"len( set_one & set_two )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 7,
"text": [
"2"
]
}
],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And of course sets can be nicely visualized using Venn diagrams."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import matplotlib_venn\n",
"\n",
"set_three = set([\"gcgc\", \"tata\", \"aaat\", \"atcg\"])\n",
"pVenn = matplotlib_venn.venn3( [set_one, set_two, set_three], [\"One\", \"Two\", \"Three\"] )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\ngg==\n",
"text": [
"<matplotlib.figure.Figure at 0x10e20eb10>"
]
}
],
"prompt_number": 8
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Set exercises\n",
"\n",
"**1.** Now it's time to try it yourself. First build a set that contains all negatively charged amino acids. I'd suggest using [Wikipedia if you don't remember them offhand](http://en.wikipedia.org/wiki/Amino_acid#Table_of_standard_amino_acid_abbreviations_and_properties)."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Positively charged amino acids as an example\n",
"set_positive = set([\"R\", \"K\"])\n",
"# Now make your own negative set here\n",
"set_negative = set([])"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 9
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**2.** Now build a set that contains all of the polar amino acids."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"set_polar = set([])"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 10
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**3.** How many amino acids are negative and polar?"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# An example first; change the following line to the correct set operation\n",
"len( set_positive & set_polar )\n",
"len( set() )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 11,
"text": [
"0"
]
}
],
"prompt_number": 11
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**4.** How many amino acids are positive or negatively charged?"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Replace the dummy set below with the correct union/intersection/etc. of positive and negative sets.\n",
"set_dummy = set([])\n",
"len( set_dummy )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 12,
"text": [
"0"
]
}
],
"prompt_number": 12
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**5.** Build a set that contains all of the basic amino acids."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"set_basic = set([])"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 13
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**6.** If you've gotten everything right, the Venn diagram for basic polar positively charged amino acids:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"if( set_basic & set_polar & set_positive ):\n",
" pVenn = matplotlib_venn.venn3( [set_basic, set_polar, set_positive], [\"Basic\", \"Polar\", \"Positive\"] )"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 14
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"should look like this (modulo arbitrary color differences):"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pVenn = matplotlib_venn.venn3( [0, 7, 0, 0, 0, 1, 2], [\"Basic\", \"Polar\", \"Positive\"] )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAO0AAADtCAYAAABTTfKPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmQHPV99/H3r7vn3tn7PqQVurXoRJIBA0KyOYztgsQO\nyAQ/Kft5QtkEx0fs5LFJpRxsJ08cUzEkxnEeu54HQ7CTVMIjAwaDhRCXkYSEhNB97mpX2vuY2bmn\nu58/Fi1adiWttN3T0zO/V5UKpJ3t/s7ufvbX/evfIUzTNJEkyTUUpwuQJOnSyNBKksvI0EqSy8jQ\nSpLLyNBKksvI0EqSy8jQSpLLyNBKksvI0EqSy8jQSpLLyNBKksvI0EqSy8jQSpLLyNBKBaO1tZXN\nmzc7XYbtZGilvNTa2kowGCQcDlNfX8/nPvc5YrHYBT9HCIEQIkcVOkeGVspLQgieeeYZotEou3bt\n4q233uK73/2uLefKZrO2HNcuMrRS3mtsbOTWW2/l3Xff5Ve/+hVtbW1UVFSwfv16Dh48OOXnbN++\nnWuuuYaKigoaGxv50pe+RCaTGf+4oig8+uijzJ8/n4ULF+bqrVhChlbKW2cXVTl16hTPPfcc4XCY\nu+++m0ceeYT+/n5uu+02PvnJT07ZUmqaxsMPP8zAwAC/+93v2Lx5M48++uiE12zatIkdO3awf//+\nnLwfq8jQSnnJNE3uuOMOKioquP7667nxxhtZsmQJn/jEJ/jIRz6Cqqp8/etfJ5FI8MYbb0z6/FWr\nVrF27VoURWH27Nnce++9bN26dcJrvvnNb1JeXo7P58vV27KE5nQBkjQVIQSbNm1iw4YN4/923333\nMWvWrAmvaWlpoaura9LnHz58mK997Wvs3LmTeDxONptl9erVE17T0tJi3xuwkWxpJddobGykvb19\n/O+maXLq1CmampomvfaLX/wiS5Ys4ejRo4yMjPC9730PwzAmvMatPc0ytJJr3HnnnTz77LO89NJL\nZDIZHnroIfx+P9dee+2k146OjhIOhwkGgxw8eJAf//jHDlRsD3l57EKpbIpENkE8EyeRee+/2QS6\noWNiYpomJmOdOIpQJvzxqT5C3hBBT5CQZ+y/qqI6/I6mZ8GCBTzxxBN86Utfoquri5UrV/L000+j\naZN/jH/wgx9w77338v3vf5+VK1eyceNGtmzZMv5xt7ayAEKue5yfoqkoA4kB+uP9DCYGiWfi4yHV\n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\n",
"text": [
"<matplotlib.figure.Figure at 0x484b150>"
]
}
],
"prompt_number": 15
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"---\n",
"## Vectors\n",
"\n",
"Most useful data requires us to allow multiple copies of the same element in a collection, though, at which point our terminology gets a bit fuzzier. We'll consider two kinds of **vectors**, a term that refers to groups of elements in which each can be copied one or more times.\n",
"\n",
"### Samples\n",
"\n",
"Sometimes, we don't care about the order of items in a vector (in which case they're more properly referred to as a *multiset*). This is especially the case when the vector represents a **sample** from an underlying **distribution**. For example, we might flip a coin six times:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# 1 represents heads, 0 tails\n",
"coin_flips = [1, 0, 0, 1, 1, 1]"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 16
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If we consider the frequency of heads:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"heads = 0.0\n",
"for flip in coin_flips:\n",
" if flip == 1:\n",
" heads += 1\n",
"heads / len( coin_flips )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 17,
"text": [
"0.6666666666666666"
]
}
],
"prompt_number": 17
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"it doesn't matter what order we got the heads in, the frequency is still the same:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"coin_flips = [1, 1, 1, 1, 0, 0]\n",
"\n",
"heads = 0.0\n",
"for flip in coin_flips:\n",
" if flip == 1:\n",
" heads += 1\n",
"heads / len( coin_flips )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 18,
"text": [
"0.6666666666666666"
]
}
],
"prompt_number": 18
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can visualize this graphically as a histogram:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pHist = pyplot.hist( coin_flips, 2 )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEACAYAAABI5zaHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFK1JREFUeJzt3X9MVff9x/HXMZdEL3Yg7Xq7XshqhUQoernU5a6ZlkuM\nsdJKSGoWTdYydYawtMTmuz/W7Q91M2bd/mjsTAxNNhb3yyVsiay9kGyL18Yisllql7JUMLLeS1s6\n1jLnVhXh8/1DRZEf9wD3l589H8knuYfz4Zy3n5y87vF9ObmOMcYIAGCVRZkuAACQfIQ7AFiIcAcA\nCxHuAGAhwh0ALES4A4CFXIX72NiYgsGgNm/ePO3+pqYmlZSUKBAIqKenJ6kFAgDmzlW4Hzx4UGVl\nZXIcZ8q+SCSi/v5+9fX16dVXX1VjY2PSiwQAzE3CcI/H44pEIvrGN76h6Z53amtrU319vSQpFApp\nZGREQ0NDya8UAOBawnB/4YUX9KMf/UiLFk0/dXBwUEVFRRPbhYWFisfjyasQADBns4b7a6+9pvvv\nv1/BYHDau/ab7tw3XfsGAJA+ntl2dnZ2qq2tTZFIRJcvX9bFixf17LPP6siRIxNz/H6/YrHYxHY8\nHpff759yrOLiYp0/fz6JpQOA/VasWKH+/v65/6JxKRqNmqeeemrKz19//XWzadMmY4wxp06dMqFQ\naNrfn8OprLdnz55Ml5A1smEtJBnJZMHYkwU1ZMtgLW4Nzeu6nvXO/U432y3Nzc2SpIaGBtXU1CgS\niai4uFi5ublqaWmZ+zsMACCpXId7VVWVqqqqJF0P9dsdOnQouVUBABaEJ1QzIBwOZ7qErMFa3C6c\n6QKySDjTBdz1nBs9x9SfyHGUplMBc3K93ci1iWw1v+zkzh0ALES4A4CFCHcAsBDhDgAWItwBwEKE\nOwBYiHAHAAsR7gBgIcIdACxEuAOAhQh3ALAQ4Q4AFiLcAcBChDsAWIhwBwALEe4AYCHCHQAslDDc\nL1++rFAopIqKCpWVlenFF1+cMicajSovL0/BYFDBYFD79+9PSbEAAHcSfkH24sWLdfz4cXm9Xl27\ndk1r167VyZMntXbt2knzqqqq1NbWlrJCAQDuuWrLeL1eSdLVq1c1NjamgoKCKXP4flQAyB6uwn18\nfFwVFRXy+Xyqrq5WWVnZpP2O46izs1OBQEA1NTXq7e1NSbEAAHdchfuiRYv09ttvKx6P64033lA0\nGp20v7KyUrFYTGfPntXzzz+vurq6VNQKAHDJMXPsp3z/+9/XkiVL9K1vfWvGOcuXL9eZM2cmtW8c\nx9GePXsmtsPhsMLh8NwrBpLMcRxJtBWRLaI3xk375tX2Thjuw8PD8ng8ys/P12effaaNGzdqz549\nWr9+/cScoaEh3X///XIcR93d3frqV7+qgYGBySdyHPryyEqEO7Lb/LIz4V/LfPjhh6qvr9f4+LjG\nx8f1zDPPaP369WpubpYkNTQ0qLW1VYcPH5bH45HX69XRo0fnXj8AIGnm3JaZ94m4c0eW4s4d2W1+\n2ckTqgBgIcIdACxEuAOAhQh3ALAQ4Q4AFiLcAcBChDsAWIhwBwALEe4AYCHCHQAsRLgDgIUIdwCw\nEOEOABYi3AHAQoQ7AFiIcAcACxHuAGAhwh0ALES4A4CFZg33y5cvKxQKqaKiQmVlZXrxxRenndfU\n1KSSkhIFAgH19PSkpFAAgHue2XYuXrxYx48fl9fr1bVr17R27VqdPHlSa9eunZgTiUTU39+vvr4+\nnT59Wo2Njerq6kp54QCAmSVsy3i9XknS1atXNTY2poKCgkn729raVF9fL0kKhUIaGRnR0NBQCkoF\nALiVMNzHx8dVUVEhn8+n6upqlZWVTdo/ODiooqKiie3CwkLF4/HkVwoAcG3WtowkLVq0SG+//bb+\n9a9/aePGjYpGowqHw5PmGGMmbTuOM+2x9u7dO/E6HA5POQ4AIHpjLEzCcL8pLy9PTz75pP7yl79M\nCmW/369YLDaxHY/H5ff7pz3G7eEOAJhO+Ma4ad+8jjJrW2Z4eFgjIyOSpM8++0x/+MMfFAwGJ82p\nra3VkSNHJEldXV3Kz8+Xz+ebVzEAgOSY9c79ww8/VH19vcbHxzU+Pq5nnnlG69evV3NzsySpoaFB\nNTU1ikQiKi4uVm5urlpaWtJSOABgZo65s2GeqhM5zpTePJANrn9GxLWJbDW/7OQJVQCwEOEOABYi\n3AHAQoQ7AFiIcAcACxHuAGAhwh0ALES4A4CFCHcAsBDhDgAWItwBwEKEOwBYiHAHAAsR7gBgIcId\nACxEuAOAhQh3ALAQ4Q4AFiLcAcBCCcM9FoupurpajzzyiMrLy/XKK69MmRONRpWXl6dgMKhgMKj9\n+/enpFgAgDueRBNycnL08ssvq6KiQpcuXdKjjz6qDRs2qLS0dNK8qqoqtbW1paxQAIB7Ce/cH3jg\nAVVUVEiSli5dqtLSUn3wwQdT5s3n27kBAKkxp577wMCAenp6FAqFJv3ccRx1dnYqEAiopqZGvb29\nSS0SADA3CdsyN126dElbtmzRwYMHtXTp0kn7KisrFYvF5PV61d7errq6Op07d27KMfbu3TvxOhwO\nKxwOz7twALBT9MZYGMe46KeMjo7qqaee0qZNm7R79+6EB12+fLnOnDmjgoKCWydyHFo3yEqO40ji\n2kS2ml92JmzLGGO0c+dOlZWVzRjsQ0NDEyfv7u6WMWZSsAMA0ithW+bNN9/UL37xC61evVrBYFCS\ndODAAb3//vuSpIaGBrW2turw4cPyeDzyer06evRoaqsGAMzKVVsmKSeiLYMsRVsG2S1FbRkAwN2H\ncAcACxHuAGAhwh0ALES4A4CFCHcAsBDhDgAWItwBwEKEOwBYiHAHAAsR7gBgIcIdACxEuAOAhQh3\nALAQ4Q4AFiLcAcBChDsAWIhwBwALEe4AYKGE4R6LxVRdXa1HHnlE5eXleuWVV6ad19TUpJKSEgUC\nAfX09CS9UACAe55EE3JycvTyyy+roqJCly5d0qOPPqoNGzaotLR0Yk4kElF/f7/6+vp0+vRpNTY2\nqqurK6WFAwBmlvDO/YEHHlBFRYUkaenSpSotLdUHH3wwaU5bW5vq6+slSaFQSCMjIxoaGkpBuQAA\nNxLeud9uYGBAPT09CoVCk34+ODiooqKiie3CwkLF43H5fL5J837/+98voFQAgFuuw/3SpUvasmWL\nDh48qKVLl07Zb4yZtO04zpQ5W7b8360Te+6Vx3PfXGoFks6YK5kuAbhD9MZYGFfhPjo6qqefflpf\n+9rXVFdXN2W/3+9XLBab2I7H4/L7/VPmXb167rbX8ykXSLaPJfkSzgLSJ3xj3LRvXkdJ2HM3xmjn\nzp0qKyvT7t27p51TW1urI0eOSJK6urqUn58/pSUDAEgfx9zZT7nDyZMn9fjjj2v16tUTrZYDBw7o\n/ffflyQ1NDRIkp577jl1dHQoNzdXLS0tqqysnHwix5E066mADLh55861iWzlTGl7u/qtROGeLIQ7\nshPhjmw3v3DnCVUAsBDhDgAWItwBwEKEOwBYiHAHAAsR7gBgIcIdACxEuAOAhQh3ALAQ4Q4AFiLc\nAcBChDsAWIhwBwALEe4AYCHCHQAsRLgDgIUIdwCwEOEOABYi3AHAQgnDfceOHfL5fFq1atW0+6PR\nqPLy8hQMBhUMBrV///6kFwkAmBtPognbt2/X888/r2effXbGOVVVVWpra0tqYQCA+Ut4575u3Tot\nW7Zs1jnz+WZuAEDqLLjn7jiOOjs7FQgEVFNTo97e3mTUBQBYgIRtmUQqKysVi8Xk9XrV3t6uuro6\nnTt3bobZe297Hb4xAAC3RG+MhXGMi57KwMCANm/erL/+9a8JD7h8+XKdOXNGBQUFk0/kOJJo3yDb\nfCzJJ65NZC9nXq3vBbdlhoaGJk7c3d0tY8yUYAcApFfCtsy2bdt04sQJDQ8Pq6ioSPv27dPo6Kgk\nqaGhQa2trTp8+LA8Ho+8Xq+OHj2a8qIBALNz1ZZJyoloyyAr0ZZBtstQWwYAkH0IdwCwEOEOABYi\n3AHAQoQ7AFiIcAcACxHuAGAhwh0ALES4A4CFCHcAsBDhDgAWItwBwEKEOwBYiHAHAAsR7gBgIcId\nACxEuAOAhQh3ALAQ4Q4AFkoY7jt27JDP59OqVatmnNPU1KSSkhIFAgH19PQktUAAwNwlDPft27er\no6Njxv2RSET9/f3q6+vTq6++qsbGxqQWCACYu4Thvm7dOi1btmzG/W1tbaqvr5ckhUIhjYyMaGho\nKHkVAgDmbME998HBQRUVFU1sFxYWKh6PL/SwAIAF8CTjIMaYSduO48wwc+9tr8M3BgDgluiNsTAL\nDne/369YLDaxHY/H5ff7Z5i9d6GnAwDLhTX5xnffvI6y4LZMbW2tjhw5Iknq6upSfn6+fD7fQg8L\nAFiAhHfu27Zt04kTJzQ8PKyioiLt27dPo6OjkqSGhgbV1NQoEomouLhYubm5amlpSXnRAIDZOebO\nhnmqTuQ4ktJyKmAOPpbkE9cmspcz5XNNN3hCFQAsRLgDgIUIdwCwEOEOABYi3AHAQoQ7AFiIcAcA\nCxHuAGAhwh0ALES4A4CFCHcAsBDhDgAWItwBwEKEOwBYiHAHAAsR7gBgIcIdACxEuAOAhVyFe0dH\nh1auXKmSkhK99NJLU/ZHo1Hl5eUpGAwqGAxq//79SS8UAOBewi/IHhsb03PPPac//vGP8vv9+tKX\nvqTa2lqVlpZOmldVVaW2traUFQoAcC/hnXt3d7eKi4v10EMPKScnR1u3btWxY8emzEvT92wDAFxI\nGO6Dg4MqKiqa2C4sLNTg4OCkOY7jqLOzU4FAQDU1Nert7U1+pQAA1xK2ZRzHSXiQyspKxWIxeb1e\ntbe3q66uTufOnUtKgQCAuUsY7n6/X7FYbGI7FoupsLBw0px77rln4vWmTZv0zW9+U5988okKCgru\nONre216HbwwAwC3RG2OBTAKjo6Pm4YcfNhcuXDBXrlwxgUDA9Pb2Tprz0UcfmfHxcWOMMadPnzZf\n/OIXpxxHkpEMg5FlY8hwbTKyeyhRTE8r4Z27x+PRoUOHtHHjRo2NjWnnzp0qLS1Vc3OzJKmhoUGt\nra06fPiwPB6PvF6vjh49uvB3HQDAvDkmTX/mcr13n5ZTAXPwsSSfuDaRvRzNJ6Z5QhUALES4A4CF\nCHcAsBDhDgAWItwBwEKEOwBYiHAHAAsR7gBgIcIdACxEuAOAhQh3ALAQ4Q4AFiLcAcBChDsAWIhw\nBwALEe4AYCHCHQAsRLgDgIUIdwCwUMJw7+jo0MqVK1VSUqKXXnpp2jlNTU0qKSlRIBBQT09P0osE\nAMyRmcW1a9fMihUrzIULF8zVq1dNIBAwvb29k+a8/vrrZtOmTcYYY7q6ukwoFJr2WJKMZBgyRjqe\nBTVky8j0WgyZ7Lk2M70W2TRYi1tDs8X0jGa9c+/u7lZxcbEeeugh5eTkaOvWrTp27NikOW1tbaqv\nr5ckhUIhjYyMaGhoKEVvRbaIZrqALBLNdAFZJJrpArJINNMF3PVmDffBwUEVFRVNbBcWFmpwcDDh\nnHg8nuQyAQBz4Zltp+M4rg5yveuS+Pc+97nNLsuy2+XL72nx4jOZLiMrZHotjLmif/87Y6cHUmbW\ncPf7/YrFYhPbsVhMhYWFs86Jx+Py+/1TjrVixQqdP//aQuu1xtWrfZkuIWtkx1q4u5FJvX2ZLiCL\nsBbS9eycj1nDfc2aNerr69PAwIAefPBB/eY3v9Gvf/3rSXNqa2t16NAhbd26VV1dXcrPz5fP55ty\nrP7+/nkVCACYu1nD3ePx6NChQ9q4caPGxsa0c+dOlZaWqrm5WZLU0NCgmpoaRSIRFRcXKzc3Vy0t\nLWkpHAAwM8fc2TAHANz1kv6EKg893ZJoLX75y18qEAho9erV+spXvqJ33nknA1Wmh5vrQpL+/Oc/\ny+Px6He/+10aq0svN2sRjUYVDAZVXl6ucDic3gLTKNFaDA8P64knnlBFRYXKy8v1s5/9LP1FpsGO\nHTvk8/m0atWqGefMOTfn9dfxM0jmQ093Ozdr0dnZaUZGRowxxrS3t/9Pr8XNedXV1ebJJ580ra2t\nGag09dysxaeffmrKyspMLBYzxhjzj3/8IxOlppybtdizZ4/59re/bYy5vg4FBQVmdHQ0E+Wm1Btv\nvGHeeustU15ePu3++eRmUu/ceejpFjdr8dhjjykvL0/S9bWw9fkAN2shST/+8Y+1ZcsWff7zn89A\nlenhZi1+9atf6emnn574y7T77rsvE6WmnJu1+MIXvqCLFy9Kki5evKh7771XHs+sHxXeldatW6dl\ny5bNuH8+uZnUcOehp1vcrMXtfvKTn6impiYdpaWd2+vi2LFjamxslOT+GYu7jZu16Ovr0yeffKLq\n6mqtWbNGP//5z9NdZlq4WYtdu3bp3Xff1YMPPqhAIKCDBw+mu8ysMJ/cTOpbYLIferqbzeXfdPz4\ncf30pz/Vm2++mcKKMsfNWuzevVs/+MEP5DiOjDFTrhFbuFmL0dFRvfXWW/rTn/6k//73v3rsscf0\n5S9/WSUlJWmoMH3crMWBAwdUUVGhaDSq8+fPa8OGDTp79qzuueeeNFSYXeaam0kN92Q+9HS3c7MW\nkvTOO+9o165d6ujomPW/ZXczN2tx5swZbd26VdL1D9Ha29uVk5Oj2tratNaaam7WoqioSPfdd5+W\nLFmiJUuW6PHHH9fZs2etC3c3a9HZ2anvfve7kq4/zLN8+XK99957WrNmTVprzbR55WbSPhEwxoyO\njpqHH37YXLhwwVy5ciXhB6qnTp2y9kNEN2vx97//3axYscKcOnUqQ1Wmh5u1uN3Xv/5189vf/jaN\nFaaPm7X429/+ZtavX2+uXbtm/vOf/5jy8nLz7rvvZqji1HGzFi+88ILZu3evMcaYjz76yPj9fvPP\nf/4zE+Wm3IULF1x9oOo2N5N6585DT7e4WYvvfe97+vTTTyf6zDk5Oeru7s5k2SnhZi3+V7hZi5Ur\nV+qJJ57Q6tWrtWjRIu3atUtlZWUZrjz53KzFd77zHW3fvl2BQEDj4+P64Q9/qIKCggxXnnzbtm3T\niRMnNDw8rKKiIu3bt0+jo6OS5p+bPMQEABbia/YAwEKEOwBYiHAHAAsR7gBgIcIdACxEuAOAhQh3\nALAQ4Q4AFvp/nu6YrT4pQwwAAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x499a290>"
]
}
],
"prompt_number": 19
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And the same principle holds (and generates much more interesting plots) for larger samples drawn from other distributions:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"uniform_sample = random_integers( 1, 100, 100 )\n",
"uniform_sample"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 20,
"text": [
"array([ 5, 24, 14, 37, 21, 45, 28, 26, 56, 27, 49, 1, 79,\n",
" 13, 57, 20, 68, 54, 25, 9, 16, 90, 3, 14, 25, 13,\n",
" 4, 36, 94, 77, 35, 34, 17, 77, 23, 53, 27, 80, 14,\n",
" 41, 55, 2, 77, 94, 65, 72, 70, 4, 52, 98, 48, 65,\n",
" 58, 63, 76, 83, 6, 63, 96, 10, 97, 86, 39, 41, 74,\n",
" 21, 45, 84, 54, 14, 22, 63, 83, 94, 49, 72, 73, 11,\n",
" 71, 51, 9, 39, 45, 42, 46, 62, 35, 11, 7, 49, 57,\n",
" 100, 14, 63, 35, 83, 36, 83, 62, 1])"
]
}
],
"prompt_number": 20
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pHist = hist( uniform_sample )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nxAmXkZHhampqXCgUcklJSa6+vj4qczfXw/bbu3dvw9xLly5t0X6+B/3QoUNuwoQJDd8vLCx0hYWF\nfh8TNS+99JLbt2+f69+/v7t8+bJz7n70+/fvH+XJvKusrHTjx493Bw4ccJMmTXLOOTP7VVVVuT59\n+vztcSv7Xb161SUnJ7tr16652tpaN2nSJLd37942vV8oFGoUvEftsmLFCldUVNTwvAkTJrjDhw9H\ndlgP/rrfn33xxRdu5syZzjlv+/l+ycXyFx1VVFTo6NGjGjFihK5cuaK4uDhJUlxcnK5cuRLl6bxb\ntGiRVq1apXbt/vjlYGW/UCik7t27a86cORoyZIjmz5+vW7dumdmva9euWrx4sXr37q2ePXvq6aef\nVlZWlpn9pEf/Wrx48WKjT5e20JqNGzdq4sSJkrzt53vQrX5+aHV1taZOnaq1a9eqU6dOjX4sEAi0\n2b337NmjHj16KDMzU+4Rfz/elverq6tTeXm5FixYoPLycj355JMqKipq9Jy2vN+5c+e0Zs0aVVRU\n6OLFi6qurta2bdsaPact7/dX/7RLW95z+fLlat++vfLy8h75nH/az/egN+eLjtqa2tpaTZ06Vfn5\n+crNzZV0/53C5cuXJUmXLl1Sjx49ojmiZ4cOHdLu3bvVp08fzZgxQwcOHFB+fr6Z/RISEpSQkKBh\nw4ZJkqZNm6by8nLFx8eb2O+nn37SyJEj1a1bN8XExGjKlCk6fPiwmf2kR/9e+2trzp8/r169ekVl\nxpbavHmzSkpKtH379obHvOzne9CHDh2qs2fPqqKiQjU1Ndq1a5cmT57s9zER45zTvHnzlJqaqoUL\nFzY8PnnyZG3ZskWStGXLlobQtzUrVqxQZWWlQqGQdu7cqXHjxmnr1q1m9ouPj1diYqLOnDkjSSor\nK1NaWppycnJM7DdgwAAdOXJEd+7ckXNOZWVlSk1NNbOf9Ojfa5MnT9bOnTtVU1OjUCiks2fPavjw\n4dEc1ZPS0lKtWrVKxcXF6tChQ8Pjnvbz6Tp/IyUlJS45OdklJSW5FStWtMYREXPw4EEXCARcRkaG\nGzx4sBs8eLD76quv3NWrV9348eNdv379XFZWlvvtt9+iPWqLBYPBhs9ysbTfzz//7IYOHeoGDRrk\nXn75ZVdVVWVqv5UrV7rU1FQ3cOBAN2vWLFdTU9Nm95s+fbp75plnXGxsrEtISHAbN25scpfly5e7\npKQk179/f1daWhrFyZvnr/tt2LDB9e3b1/Xu3buhL2+++WbD88Pdjy8sAgAjuAUdABhB0AHACIIO\nAEYQdAAwgqADgBEEHQCMIOgAYARBBwAj/h8bjBql1FZP9AAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x486fad0>"
]
}
],
"prompt_number": 21
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"normal_sample = standard_normal( 100 )\n",
"normal_sample"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 22,
"text": [
"array([ 0.13366919, 0.14242884, -0.23558617, -0.16837113, 2.09142761,\n",
" -1.8662015 , 1.58000175, 0.6398837 , 0.87576846, 0.0664576 ,\n",
" 1.73965257, 0.07043554, 0.51465877, 0.58857142, -1.12123307,\n",
" -1.68309715, -2.02403466, 1.19887109, 2.03780821, 0.30641653,\n",
" 2.45976611, 0.86678413, 0.80827071, -1.02769596, -1.81055915,\n",
" -0.45327152, -1.45932387, 0.06326191, -0.78001514, -1.01493469,\n",
" -1.45199991, 0.398442 , -0.10015301, 1.7985267 , 0.0919492 ,\n",
" -1.43088187, -0.22447644, 0.43289623, 0.31390294, -0.39704286,\n",
" 0.05493405, -0.16656912, -0.48585423, -0.99686668, -0.53923015,\n",
" -0.07722374, -1.27379074, -0.93619454, 1.26489455, -1.25236028,\n",
" -0.41401491, -0.16652072, -0.01765671, 1.69206299, 1.81667604,\n",
" -1.40450892, -0.25090116, 1.12901212, 0.2981396 , 1.11650898,\n",
" -1.49809228, 0.18630516, -1.52163577, -0.02800739, 0.01430361,\n",
" 0.21039084, -0.30838889, 0.52961326, -0.20195253, -0.41130575,\n",
" 1.78299372, -0.19924405, -1.65255011, 0.40001453, 0.97225342,\n",
" 0.44551505, 0.02718564, -0.51127908, 1.5823013 , 0.29814651,\n",
" 1.6074691 , -0.74891184, 0.40270992, -0.35415973, -0.48483033,\n",
" -0.69962424, 0.90096555, -0.30642914, -1.74836503, 1.86821853,\n",
" 0.51966061, 0.36927613, 0.12107008, -1.49644516, -0.25342855,\n",
" 0.37904745, -0.70626415, 0.87949756, 0.06215418, -0.23461908])"
]
}
],
"prompt_number": 22
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pHist = hist( normal_sample )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x4c0b850>"
]
}
],
"prompt_number": 23
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And because order doesn't matter for samples, the histogram looks identical if it's shuffled:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"shuffle( normal_sample )\n",
"normal_sample"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 24,
"text": [
"array([ 0.02718564, 1.26489455, 1.6074691 , -0.78001514, 1.73965257,\n",
" -0.35415973, 0.37904745, -1.8662015 , -0.74891184, 0.40001453,\n",
" -1.45199991, 0.0919492 , -0.30838889, 1.78299372, -1.27379074,\n",
" -0.22447644, 0.6398837 , 1.11650898, 2.03780821, 1.5823013 ,\n",
" -0.07722374, 0.398442 , -0.20195253, -1.01493469, -0.19924405,\n",
" 0.13366919, 0.97225342, 0.40270992, -0.39704286, -0.93619454,\n",
" 0.06326191, 0.14242884, -0.02800739, 0.18630516, -0.10015301,\n",
" 0.90096555, -1.49809228, 1.86821853, 0.21039084, -0.23461908,\n",
" 0.51966061, -0.01765671, -0.16652072, 1.58000175, -0.51127908,\n",
" -0.99686668, -0.16656912, -0.45327152, 1.69206299, 0.07043554,\n",
" -1.52163577, -1.02769596, 0.52961326, 0.51465877, -0.48483033,\n",
" -0.48585423, 0.05493405, -0.16837113, -0.25090116, -0.30642914,\n",
" -0.69962424, 0.12107008, 0.31390294, -1.74836503, -2.02403466,\n",
" 0.87949756, 0.86678413, -1.43088187, 0.44551505, 1.12901212,\n",
" 0.2981396 , -1.12123307, -1.68309715, 0.29814651, 1.81667604,\n",
" 0.87576846, 0.06215418, -0.70626415, -0.41130575, -1.49644516,\n",
" -1.25236028, -0.23558617, -1.40450892, 1.19887109, -1.65255011,\n",
" 0.43289623, 2.45976611, 0.01430361, 0.30641653, 0.58857142,\n",
" 0.0664576 , -0.25342855, 2.09142761, 1.7985267 , -0.53923015,\n",
" 0.80827071, -1.45932387, -0.41401491, -1.81055915, 0.36927613])"
]
}
],
"prompt_number": 24
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pHist = hist( normal_sample )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x496b390>"
]
}
],
"prompt_number": 25
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Just for kicks, note that this environment makes it trivially easy to see how these samples converge to their generating distributions as their sizes grow."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pHist = hist( random_integers( 1, 100, 100000 ), 50 )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAYEAAAEACAYAAABVtcpZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGCJJREFUeJzt3G9sU9f9x/HP7ZL2QQGNbo2T2kyBxEkwCUlWcKdplcpS\n0waVDAY/RLpBCnQPQOtgQ1WlPln6ABK037pBO6SqaqWolYBqkxI0LVHWVdlQW8L4p1UEiawkkuP8\n0Qbkt9AyTMj5PQBMQ2KHOI7t5Lxf0pXIub7nfu/x9f343uuLY4wxAgBY6YFUFwAASB1CAAAsRggA\ngMUIAQCwGCEAABYjBADAYjFDIBgMasWKFVqyZImKi4t14MABSVJtba08Ho/Ky8tVXl6u5ubmyDJ1\ndXXyer0qKipSa2trpP3UqVMqKSmR1+vVzp07p2lzAACT4cR6TqC/v1/9/f0qKyvT1atX9fjjj6ux\nsVEffPCB5s6dq1/84hejXt/R0aHnn39ef//73xUKhfT000+rs7NTjuPI7/frzTfflN/v16pVq/Sz\nn/1Mzz777LRvIAAguphnAtnZ2SorK5MkzZkzR4sXL1YoFJIkjZcdTU1Nqq6uVmZmpnJzc5Wfn6/2\n9nb19fVpaGhIfr9fkrR582Y1NjYmelsAAJN03/cEuru7debMGX3nO9+RJL3xxhsqLS3Vtm3bNDg4\nKEnq7e2Vx+OJLOPxeBQKhca0u93uSJgAAFLnvkLg6tWrWr9+vfbv3685c+Zo+/bt6urq0tmzZ5WT\nk6Pdu3dPd50AgGmQMdELbty4oXXr1unHP/6x1qxZI0nKysqKzH/xxRe1evVqSbe+4QeDwci8np4e\neTweud1u9fT0jGp3u91j1pWfn6/PP/88/q0BAAvl5eXpn//8Z3wLmxhGRkbMpk2bzK5du0a19/b2\nRv79+uuvm+rqamOMMefOnTOlpaXm+vXr5uLFi2bRokVmZGTEGGOM3+83x48fNyMjI6aystI0NzeP\nWd8E5Vjll7/8ZapLSBuMxV2MxV2MxV1TOXbGPBP4+OOP9f7772vp0qUqLy+XJO3du1eHDh3S2bNn\n5TiOFi5cqLfeekuS5PP5tGHDBvl8PmVkZOjgwYNyHEeSdPDgQb3wwgu6du2aVq1axS+DACANxAyB\n733vexoZGRnTXllZGXWZV199Va+++uqY9scff1yfffZZHCUCAKYLTwynqaeeeirVJaQNxuIuxuIu\nxiIxYj4slmyO44z7/AEAILqpHDs5EwAAixECAGAxQgAALEYIAIDFCAEAsBghAAAWIwQAwGKEAABY\njBAAAIsRAgBgMUIAACxGCACAxQgBALAYIQAAFiMEAMBihAAAWIwQAACLEQIAYDFCAAAsRggAgMUI\nAQCwGCEAABYjBADAYoQAAFiMEAAAixECAGAxQgAALEYIAIDFCAGkxLx5j8hxnDHTvHmPpLo0wCqO\nMcakuog7HMdRGpWDaeQ4jqTx3mv2AWCypnLs5EwAACw2I0Mg2qUELicASBcz5Tg1Iy8HRb+UIHE5\nYWbgchC+at68RzQ0dGXceXPnztd//nN5UsvFWiZZknmc4nLQFCUzsbkhCox160Buxp2ihUOs5WIt\ng9FihkAwGNSKFSu0ZMkSFRcX68CBA5Kky5cvKxAIqKCgQCtXrtTg4GBkmbq6Onm9XhUVFam1tTXS\nfurUKZWUlMjr9Wrnzp0TFjY8PKzr16+PO8WWMemDbLw7YDzYaeM3U06vJ2M2btNslA7vU6wapsTE\n0NfXZ86cOWOMMWZoaMgUFBSYjo4O8/LLL5t9+/YZY4ypr683r7zyijHGmHPnzpnS0lITDodNV1eX\nycvLMyMjI8YYY5YvX27a29uNMcZUVlaa5ubmMev7ajnf/OZj5oEHMs3XvvbgqMlxvnb7yGmiTNHm\nRd/UifpLpHjqS3dz584fN0Hnzp0fdZno45AxfhpHpuS8T8kSe5uijUVm1PGJNebxiPbeJnpd8b63\nyfo8xVNfovfX6dr/Y54JZGdnq6ysTJI0Z84cLV68WKFQSEePHlVNTY0kqaamRo2NjZKkpqYmVVdX\nKzMzU7m5ucrPz1d7e7v6+vo0NDQkv98vSdq8eXNkmWj+85//08jIZd28eX3UZMyRmMtFN/4ZwpRT\nFAk+uxkety9FvbY6m0UbixtR2pN35jod60Jq3Pc9ge7ubp05c0ZPPPGEBgYG5HK5JEkul0sDAwOS\npN7eXnk8nsgyHo9HoVBoTLvb7VYoFErUNtwnDi53cF9iNov+ZScd3t9o+5590ud9yrifF129elXr\n1q3T/v37NXfu3FHzEv0m1tbWSpKGh8OSjkmqTFjfuOXut7t72xP9Ycyw9AOeSne+7IyV+Pd38qLt\ne1Lqa4tfPPv5VN+nttvT1E0YAjdu3NC6deu0adMmrVmzRtKtb//9/f3Kzs5WX1+fsrKyJN36hh8M\nBiPL9vT0yOPxyO12q6enZ1S72+0ed313QqCu7n8VDj8Z94alUqyfu0UXfUdK3s/dYu3Mmbp1GWIy\nou/oM/tDP3nx7ROYGaLt59O5jz91e7rjtbh7ink5yBijbdu2yefzadeuXZH2qqoqNTQ0SJIaGhoi\n4VBVVaXDhw8rHA6rq6tLnZ2d8vv9ys7O1rx589Te3i5jjN57773IMrNRrOuo0UW/XJW8g0esS2bR\nr0Onh8n/KiyWRF8yi75PpN60/eoEM0Osu8bHjh0zjuOY0tJSU1ZWZsrKykxzc7O5dOmSqaioMF6v\n1wQCAXPlypXIMnv27DF5eXmmsLDQtLS0RNpPnjxpiouLTV5ennnppZei3v2+48EHHzbS0Dh3wX8/\n4V3yybUn/y7+5GtI7K9EpmOMUrtM4n8lksz+kjlGk6stvv5i/aIo3m1K1vs0+fWkz/sUr7R9Yvih\nh+YoHO6XNOeeV/1B0nop5mWG8ebFfnov1rzJDtFETwomrr746o71tG68Y5SsbYqnv3h28UQ/0ZzY\nMU/svhzf/pro/hK9L2fq1pntWPFcXk3eZ/rWvHjGNd5D+X3dGAZwR6LvmySTTTfq0/sGeWzJfZ8I\ngVnLpg98Mk10szvWvFRL9A3M2bePpccN/OTeaCYEZi1+mXPLTP7mnu6SdbBKdNhM1F/yDsDpgBCY\nULQdhgPIzDCTv7njlkR/oeEL0lcRAhOK9W2HHQnAzMZ/JQ0AFiMEAMBihAAAWIwQAACLEQIAYDFC\nAAAsRggAgMUIAQCwGCEAABYjBADAYoQAAFiMEAAAixECAGAxQgAALEYIAIDFCAEAsBghAAAWIwQA\nwGKEAABYjBAAAIsRAgBgMUIAACxGCACAxQgBALAYIQAAFiMEAMBihAAAWIwQAACLEQIAYDFCAAAs\nNmEIbN26VS6XSyUlJZG22tpaeTwelZeXq7y8XM3NzZF5dXV18nq9KioqUmtra6T91KlTKikpkdfr\n1c6dOxO8GQCAuJgJ/O1vfzOnT582xcXFkbba2lrz61//esxrz507Z0pLS004HDZdXV0mLy/PjIyM\nGGOMWb58uWlvbzfGGFNZWWmam5vHLP/Vch588GEjDRnJ3DP93kgap/3OFG1ePMuke3/pUAPbxBjN\nlhpm9jbFa8IzgSeffFLz588fLzzGtDU1Nam6ulqZmZnKzc1Vfn6+2tvb1dfXp6GhIfn9fknS5s2b\n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\nYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x4c15090>"
]
}
],
"prompt_number": 26
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pHist = hist( standard_normal( 100000 ), 50 )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAEACAYAAACwB81wAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHP9JREFUeJzt3V9sU+f9BvDHLKlQR8wPVGIzHypPidNgEpIMMFedTFMn\nLBVZWlhE6IgpsIugbSmbOminrckFiSnigj/KTRU6LxcEJm1JVoEVqLBG18msAcQ2o+J1RrUdxxoN\nAcOCDMn7u8g4w8ROHHB8HM7zkSy5r897/D0hfvrm9Tnv0QghBIiI6Jk3T+kCiIgoMxj4REQqwcAn\nIlIJBj4RkUow8ImIVIKBT0SkEtMG/hdffIGKigr5sXDhQhw+fBjDw8Ow2WwoKipCVVUVRkZG5D7t\n7e0wmUwoLi5Gf3+/3D4wMIDS0lKYTCY0NzfPzhEREVFCmpmchz8+Pg6DwYALFy7gyJEjeOGFF/CL\nX/wC+/fvx82bN+FwOOD1erFlyxb89a9/RSgUwquvvgqfzweNRgOLxYKjR4/CYrGgpqYGP/3pT7F+\n/frZPD4iIvqvGU3pnD17FoWFhVi2bBn6+vpgt9sBAHa7HT09PQCA3t5eNDQ0IDc3F0ajEYWFhfB4\nPAiHw4hGo7BYLACAxsZGuQ8REc2+GQV+d3c3GhoaAACRSAQ6nQ4AoNPpEIlEAACDg4OQJEnuI0kS\nQqHQpHaDwYBQKPTUB0BERKlJOfBjsRj++Mc/4gc/+MGk1zQaDTQaTVoLIyKi9MpJdcPTp09j1apV\nWLJkCYCJUf3Q0BD0ej3C4TDy8/MBTIzcA4GA3C8YDEKSJBgMBgSDwbh2g8Ew6X0KCwvx5ZdfPvEB\nERGpTUFBAf75z39Ou13KI/zjx4/L0zkAUFtbC6fTCQBwOp2oq6uT27u7uxGLxeD3++Hz+WCxWKDX\n66HVauHxeCCEQFdXl9znUV9++SWEEFn1eP/99xWvgTU9OzVla12sae7WlOogOaUR/t27d3H27Fl8\n+OGHctvevXtRX1+Pzs5OGI1GnDx5EgBgNptRX18Ps9mMnJwcdHR0yNM9HR0d2LZtG0ZHR1FTU8Mz\ndIiIMiilwP/mN7+JGzduxLUtXrwYZ8+eTbj9e++9h/fee29S+6pVq/C3v/3tCcokIqKnxSttU2C1\nWpUuYRLWlJpsrAnIzrpYU2qysaZUzejCq0zQaDTIspKIZo1WuxjR6M2Er+XlLcLt28MZrojmolRz\nk4FPpKCJ77eS/b7zs0CpSTU3OaVDRKQSDHyiNNJqF8sXIj760GoXK10aEad0iNIp+RRN4t9rTulQ\nOnBKh4iI4jDwiYhUgoFPRKQSDHwiIpVIebVMInoaOVxCnBTHwCfKiAdIdvYOUaZwSoeISCUY+ERE\nKsHAJyJSCQY+EZFKMPCJiFSCgU/0BJItkpZeOVyIjdKKi6cRPYGpFklLT/vUffgZoUdx8TQiIorD\nwCciUgkGPhGRSjDwiYhUIqXAHxkZwaZNm7B8+XKYzWZ4PB4MDw/DZrOhqKgIVVVVGBkZkbdvb2+H\nyWRCcXEx+vv75faBgQGUlpbCZDKhubk5/UdDRERJpRT4zc3NqKmpwdWrV3HlyhUUFxfD4XDAZrPh\n2rVrqKyshMPhAAB4vV6cOHECXq8XLpcLu3btkr89bmpqQmdnJ3w+H3w+H1wu1+wdGRERxZk28G/d\nuoXz589j+/btAICcnBwsXLgQfX19sNvtAAC73Y6enh4AQG9vLxoaGpCbmwuj0YjCwkJ4PB6Ew2FE\no1FYLBYAQGNjo9yHiIhm37SB7/f7sWTJErz11lv4zne+gx/96Ee4e/cuIpEIdDodAECn0yESiQAA\nBgcHIUmS3F+SJIRCoUntBoMBoVAo3cdDRERJTLse/oMHD3Dx4kUcPXoUa9aswdtvvy1P3zyU7qsM\nW1pa5OdWqxVWqzVt+yaa+xLfTCUvbxFu3x5WoB7KNLfbDbfbPeN+0wa+JEmQJAlr1qwBAGzatAnt\n7e3Q6/UYGhqCXq9HOBxGfn4+gImReyAQkPsHg0FIkgSDwYBgMBjXbjAYEr7no4FPRI9LfDOVaJQ3\nU1GLxwfCra2tKfWbdkpHr9dj2bJluHbtGgDg7NmzWLFiBTZs2ACn0wkAcDqdqKurAwDU1taiu7sb\nsVgMfr8fPp8PFosFer0eWq0WHo8HQgh0dXXJfYiIaPaldIvDI0eO4M0330QsFkNBQQE++ugjjI2N\nob6+Hp2dnTAajTh58iQAwGw2o76+HmazGTk5Oejo6JD//Ozo6MC2bdswOjqKmpoarF+/fvaOjIiI\n4nDxNKInoPTiaVxUjR7FxdOInlKyJZDTvwwyUWZwhE+URPJRPJC+kTxH+PT0OMInIqI4DHwiIpVg\n4BMRqQQDn4hIJRj4REQqwcAnIlIJBj4RkUow8ImIVIKBT0SkEgx8IiKVYOATPTNykq79o9UuVro4\nygIpLY9MRHNB4hujALw5Ck3gCJ+ISCUY+EREKsHAJyJSCQY+EZFKMPCJiFSCgU9EpBIMfFK9ZPeu\nJXrW8J62pHrJ71079+5pO9W++Ll6dvGetkREFCelwDcajVi5ciUqKipgsVgAAMPDw7DZbCgqKkJV\nVRVGRkbk7dvb22EymVBcXIz+/n65fWBgAKWlpTCZTGhubk7zoRAR0VRSCnyNRgO3241Lly7hwoUL\nAACHwwGbzYZr166hsrISDocDAOD1enHixAl4vV64XC7s2rVL/lOjqakJnZ2d8Pl88Pl8cLlcs3RY\nRET0uJSndB6fH+rr64PdbgcA2O129PT0AAB6e3vR0NCA3NxcGI1GFBYWwuPxIBwOIxqNyn8hNDY2\nyn2IiGj2pTzCf/XVV7F69Wp8+OGHAIBIJAKdTgcA0Ol0iEQiAIDBwUFIkiT3lSQJoVBoUrvBYEAo\nFErbgRAR0dRSWi3zz3/+M5YuXYp///vfsNlsKC4ujns93aextbS0yM+tViusVmva9k1ENNe53W64\n3e4Z90sp8JcuXQoAWLJkCV5//XVcuHABOp0OQ0ND0Ov1CIfDyM/PBzAxcg8EAnLfYDAISZJgMBgQ\nDAbj2g0GQ8L3ezTwiYgo3uMD4dbW1pT6TTul85///AfRaBQAcPfuXfT396O0tBS1tbVwOp0AAKfT\nibq6OgBAbW0turu7EYvF4Pf74fP5YLFYoNfrodVq4fF4IIRAV1eX3IeIiGbftCP8SCSC119/HQDw\n4MEDvPnmm6iqqsLq1atRX1+Pzs5OGI1GnDx5EgBgNptRX18Ps9mMnJwcdHR0yNM9HR0d2LZtG0ZH\nR1FTU4P169fP4qEREdGjeKUtqR6vtKW5jlfaEhFRHAY+EZFKMPCJVCEn4YqgWu1ipQujDErptEwi\nmuseINH8fjTKZaDVhCN8Ug2ue09qx7N0SDVmfjbOs3WWTrI+/LzNfTxLh4iI4jDwiYhUgoFPRKQS\nDHwiIpVg4BMRqQQDn4hIJRj4REQqwcAnIlIJBj4RkUow8ImIVIKBT0SkEgx8IiKVYOATEakEA5+I\nSCUY+EREKsHAJyJSCQY+EZFKpBT4Y2NjqKiowIYNGwAAw8PDsNlsKCoqQlVVFUZGRuRt29vbYTKZ\nUFxcjP7+frl9YGAApaWlMJlMaG5uTvNhEBHRdFIK/EOHDsFsNsv3/3Q4HLDZbLh27RoqKyvhcDgA\nAF6vFydOnIDX64XL5cKuXbvk2241NTWhs7MTPp8PPp8PLpdrlg6JiIgSmTbwg8EgTp06hZ07d8rh\n3dfXB7vdDgCw2+3o6ekBAPT29qKhoQG5ubkwGo0oLCyEx+NBOBxGNBqFxWIBADQ2Nsp9iIgoM6YN\n/N27d+PAgQOYN+9/m0YiEeh0OgCATqdDJBIBAAwODkKSJHk7SZIQCoUmtRsMBoRCobQdBBERTS9n\nqhc//vhj5Ofno6KiAm63O+E2Go1GnupJl5aWFvm51WqF1WpN6/6JiOYyt9udNJOnMmXgf/bZZ+jr\n68OpU6dw79493L59G1u3boVOp8PQ0BD0ej3C4TDy8/MBTIzcA4GA3D8YDEKSJBgMBgSDwbh2g8GQ\n9H0fDXwimk05CQdseXmLcPv2sAL1UCoeHwi3tram1G/KKZ22tjYEAgH4/X50d3fjlVdeQVdXF2pr\na+F0OgEATqcTdXV1AIDa2lp0d3cjFovB7/fD5/PBYrFAr9dDq9XC4/FACIGuri65D1E6abWL5b86\nH39QIg8AiEmPaPSmolXR7JhyhP+4hx+avXv3or6+Hp2dnTAajTh58iQAwGw2o76+HmazGTk5Oejo\n6JD7dHR0YNu2bRgdHUVNTQ3Wr1+f5kMhwn+DSiR5laFP6qYRD0+9yRIajQZZVhLNIRMDjKkCP9Fr\nM21P576yt15+DueOVHOTV9oSEakEA5+ISCUY+EREKsHAJyJSCQY+EZFKMPCJiFSCgU9EpBIMfCIi\nlWDgExGpBAOfiEglGPhERCrBwCciUgkGPhGRSjDwiYhUgoFPRKQSDHwiIpVg4NOclOxWhkSU3Ixu\ncUiULZLfypChT5QMR/hERCrBwCeiBHISTplpNBpotYuVLo6eEKd0iCiBB0h2Q/RolNNmcxVH+ERE\nKsHAJyJSiSkD/969e1i7di3Ky8thNpvx7rvvAgCGh4dhs9lQVFSEqqoqjIyMyH3a29thMplQXFyM\n/v5+uX1gYAClpaUwmUxobm6epcMhIqJkpgz8+fPn49y5c7h8+TKuXLmCc+fO4dNPP4XD4YDNZsO1\na9dQWVkJh8MBAPB6vThx4gS8Xi9cLhd27doFISbmAZuamtDZ2QmfzwefzweXyzX7R0dERLJpp3Se\nf/55AEAsFsPY2BgWLVqEvr4+2O12AIDdbkdPTw8AoLe3Fw0NDcjNzYXRaERhYSE8Hg/C4TCi0Sgs\nFgsAoLGxUe5DRESZMW3gj4+Po7y8HDqdDuvWrcOKFSsQiUSg0+kAADqdDpFIBAAwODgISZLkvpIk\nIRQKTWo3GAwIhULpPhYiIprCtKdlzps3D5cvX8atW7dQXV2Nc+fOxb0+G5e0t7S0yM+tViusVmta\n909ENJe53W643e4Z90v5PPyFCxfitddew8DAAHQ6HYaGhqDX6xEOh5Gfnw9gYuQeCATkPsFgEJIk\nwWAwIBgMxrUbDIak7/Vo4BMRUbzHB8Ktra0p9ZtySufGjRvyGTijo6M4c+YMKioqUFtbC6fTCQBw\nOp2oq6sDANTW1qK7uxuxWAx+vx8+nw8WiwV6vR5arRYejwdCCHR1dcl9iIgoM6Yc4YfDYdjtdoyP\nj2N8fBxbt25FZWUlKioqUF9fj87OThiNRpw8eRIAYDabUV9fD7PZjJycHHR0dMjTPR0dHdi2bRtG\nR0dRU1OD9evXz/7RERGRTCMenjeZJTQaDbKsJMpCEwOJZKtlJvv9mWmfTOxrrtU78Ro/o9kl1dzk\nlbZERCrBwCciUgkGPmU13tmKKH24PDJlNd7Ziih9OMInIlIJBj4RzVDiu2HxTljZj1M6RDRDie+G\nxTthZT+O8ImIVIKBT0SkEgx8IiKVYOATEakEA5+ISCUY+EREKsHAJyJSCQY+EZFKMPCJiFSCgU9E\npBIMfCIilWDgExGpBAOfiEglGPhERCrBwCeiNOE6+dmO6+ETUZpwnfxsN+0IPxAIYN26dVixYgVK\nSkpw+PBhAMDw8DBsNhuKiopQVVWFkZERuU97eztMJhOKi4vR398vtw8MDKC0tBQmkwnNzc2zcDhE\nRJSUmEY4HBaXLl0SQggRjUZFUVGR8Hq94p133hH79+8XQgjhcDjEnj17hBBC/OMf/xBlZWUiFosJ\nv98vCgoKxPj4uBBCiDVr1giPxyOEEOJ73/ueOH369KT3S6Ekesbk5S0SmBgaJnmIBI+Ztj9Jn0zs\na67V+2T7otmV6s942hG+Xq9HeXk5AGDBggVYvnw5QqEQ+vr6YLfbAQB2ux09PT0AgN7eXjQ0NCA3\nNxdGoxGFhYXweDwIh8OIRqOwWCwAgMbGRrkPqVs0ehPJ856I0mVGX9pev34dly5dwtq1axGJRKDT\n6QAAOp0OkUgEADA4OAhJkuQ+kiQhFApNajcYDAiFQuk4BiIiSkHKX9reuXMHGzduxKFDh5CXlxf3\n2sNv49OlpaVFfm61WmG1WtO2byKiuc7tdsPtds+4X0qBf//+fWzcuBFbt25FXV0dgIlR/dDQEPR6\nPcLhMPLz8wFMjNwDgYDcNxgMQpIkGAwGBIPBuHaDwZDw/R4NfCIiivf4QLi1tTWlftNO6QghsGPH\nDpjNZrz99ttye21tLZxOJwDA6XTK/yOora1Fd3c3YrEY/H4/fD4fLBYL9Ho9tFotPB4PhBDo6uqS\n+xAR0ezT/Pcb3qQ+/fRTfPe738XKlSvlaZv29nZYLBbU19fjq6++gtFoxMmTJ/F///d/AIC2tjYc\nO3YMOTk5OHToEKqrqwFMnJa5bds2jI6OoqamRj7FM64gjQbTlETPmInfq2T/5slem2l7tu5rrtX7\nZPviZ3p2pZqb0wZ+pjHw1YeBP5fqfbJ98TM9u1LNTS6tQESkEgx8IiKVYOATEakEA5+ISCUY+ERE\nKsHAJ6JZxnXyswXXwyeiWcZ18rMFR/iUMVrt4oQjPSLKDI7wKWP+twzy4xj6RJnAET4RkUow8ImI\nVIKBT0SkEgx8IiKVYOATEakEA5+ISCUY+EREKsHAJyJSCQY+EZFKMPCJiFSCgU9EpBIMfCJSSOJl\nk7l08uxh4FPacVVMSs3DZZMnPyYW2qN042qZlHZcFZMoO007wt++fTt0Oh1KS0vltuHhYdhsNhQV\nFaGqqgojIyPya+3t7TCZTCguLkZ/f7/cPjAwgNLSUphMJjQ3N6f5MIiIaDrTBv5bb70Fl8sV1+Zw\nOGCz2XDt2jVUVlbC4XAAALxeL06cOAGv1wuXy4Vdu3ZBiImRXlNTEzo7O+Hz+eDz+Sbtk4iIZte0\ngf/yyy9j0aJFcW19fX2w2+0AALvdjp6eHgBAb28vGhoakJubC6PRiMLCQng8HoTDYUSjUVgsFgBA\nY2Oj3IeIiDLjib60jUQi0Ol0AACdTodIJAIAGBwchCRJ8naSJCEUCk1qNxgMCIVCT1M3ERHN0FN/\naTsbZ2C0tLTIz61WK6xWa1r3T0Q0l7ndbrjd7hn3e6LA1+l0GBoagl6vRzgcRn5+PoCJkXsgEJC3\nCwaDkCQJBoMBwWAwrt1gMCTd/6OBT0RE8R4fCLe2tqbU74mmdGpra+F0OgEATqcTdXV1cnt3dzdi\nsRj8fj98Ph8sFgv0ej20Wi08Hg+EEOjq6pL7EBFRhohpbN68WSxdulTk5uYKSZLEsWPHxNdffy0q\nKyuFyWQSNptN3Lx5U95+3759oqCgQLz00kvC5XLJ7Z9//rkoKSkRBQUF4ic/+UnS90uhJMoSeXmL\nEl81AwhAJHjMtP1J+sy1fc21ejN37JS6VH9emv9unDU0Gg2yrCRKYuK7m0T/VulqV8O+5lq96dzX\n1O/BHEhdqrnJpRWIKAslXmeHa+w8HS6tQERZ6OE6O/GiUS7P8TQ4wiciUgkGPhGRSjDwiYhUgoFP\nRKQSDHwiIpVg4NOUkt29inewIpp7eFomTSn53asA3sGKaG7hCJ+ISCUY+EQ0h/AK3KfBKR0imkN4\nBe7T4AifiEglGPhERCrBwCcAyU+/JJobEs/tc34/HufwCcBUp18y9GkuSDy3D3B+/1Ec4RMRqQQD\nn4hIJRj4KsO5elIfnrv/EOfwVYZz9aQ+PHf/IY7wiYhUgoH/DOIKl0SpUN9UT8YD3+Vyobi4GCaT\nCfv378/026vC/6ZtEj2IaMLDqZ74x8Tn59mU0cAfGxvDj3/8Y7hcLni9Xhw/fhxXr17NZAlPxO12\nK13CJNlYE+BWuoAE3EoXkIRb6QIScCtdQAJupQuYJDs/e6nJaOBfuHABhYWFMBqNyM3NxebNm9Hb\n25vJEp5INv4Du93uLDzjxq3geyfjVrqAJNxKF5CAW+kCEnAr8J5TT/VkYx6kKqNn6YRCISxbtkz+\nb0mS4PF4MlnCnKTVLp7iz0yecUOUXsnO6smVB1Stra1xr+XlLcLt28OZKO6pZHSEn6nR5/j4OAwG\nKekXl//617/S9l7JvyB9bobtyV9LPCf/ftqOgYhS8fB/BO9j8rx/NG05MKtfGosM+stf/iKqq6vl\n/25raxMOhyNum4KCgmTfNvLBBx988JHgUVBQkFIGa4QQAhny4MEDvPTSS/jkk0/wrW99CxaLBceP\nH8fy5cszVQIRkWpldA4/JycHR48eRXV1NcbGxrBjxw6GPRFRhmR0hE9ERMrJuittW1paIEkSKioq\nUFFRAZfLpXRJsoMHD2LevHkYHs6Ob+N/9atfoaysDOXl5aisrEQgEFC6JLzzzjtYvnw5ysrK8MYb\nb+DWrVtKl4Tf/e53WLFiBb7xjW/g4sWLitaSjRcebt++HTqdDqWlpUqXIgsEAli3bh1WrFiBkpIS\nHD58WOmScO/ePaxduxbl5eUwm8149913lS5JNjY2hoqKCmzYsGHqDdP2jWyatLS0iIMHDypdxiRf\nffWVqK6uFkajUXz99ddKlyOEEOL27dvy88OHD4sdO3YoWM2E/v5+MTY2JoQQYs+ePWLPnj0KVyTE\n1atXxRdffCGsVqsYGBhQrI4HDx6IgoIC4ff7RSwWE2VlZcLr9SpWz0N/+tOfxMWLF0VJSYnSpcjC\n4bC4dOmSEEKIaDQqioqKsuJndffuXSGEEPfv3xdr164V58+fV7iiCQcPHhRbtmwRGzZsmHK7rBvh\nA4DIwlmmn/3sZ/jggw+ULiNOXl6e/PzOnTt44YUXFKxmgs1mw7x5E79Wa9euRTAYVLgioLi4GEVF\nRUqXkbUXHr788stYtGiR0mXE0ev1KC8vBwAsWLAAy5cvx+DgoMJVAc8//zwAIBaLYWxsDIsXK7/u\nTjAYxKlTp7Bz585pszMrA//IkSMoKyvDjh07MDIyonQ56O3thSRJWLlypdKlTPLLX/4SL774IpxO\nJ/bu3at0OXGOHTuGmpoapcvIGokuPAyFQgpWNDdcv34dly5dwtq1a5UuBePj4ygvL4dOp8O6detg\nNpuVLgm7d+/GgQMH5IHWVBRZD99ms2FoaGhS+759+9DU1IRf//rXACbmqH/+85+js7NT0Zra29vR\n398vt2XyL5BkdbW1tWHDhg3Yt28f9u3bB4fDgd27d+Ojjz5SvCZg4uf23HPPYcuWLbNeT6o1KY2r\nlc7cnTt3sGnTJhw6dAgLFixQuhzMmzcPly9fxq1bt1BdXQ232w2r1apYPR9//DHy8/NRUVGR0pIP\nigT+mTNnUtpu586dGfuwJqvp73//O/x+P8rKygBM/Pm0atUqXLhwAfn5+YrV9bgtW7ZkbDQ9XU2/\n+c1vcOrUKXzyyScZqQdI/eekJIPBEPfFeiAQgCRJClaU3e7fv4+NGzfihz/8Ierq6pQuJ87ChQvx\n2muv4fPPP1c08D/77DP09fXh1KlTuHfvHm7fvo3Gxkb89re/Tbh91k3phMNh+fkf/vAHxc8cKCkp\nQSQSgd/vh9/vhyRJuHjxYkbCfjo+n09+3tvbi4qKCgWrmeByuXDgwAH09vZi/vz5SpcziZLfD61e\nvRo+nw/Xr19HLBbDiRMnUFtbq1g92UwIgR07dsBsNuPtt99WuhwAwI0bN+Qp5tHRUZw5c0bxz1xb\nWxsCgQD8fj+6u7vxyiuvJA17ANl3ls7WrVtFaWmpWLlypfj+978vhoaGlC4pzre//e2sOUtn48aN\noqSkRJSVlYk33nhDRCIRpUsShYWF4sUXXxTl5eWivLxcNDU1KV2S+P3vfy8kSRLz588XOp1OrF+/\nXrFaTp06JYqKikRBQYFoa2tTrI5Hbd68WSxdulQ899xzQpIkcezYMaVLEufPnxcajUaUlZXJv0un\nT59WtKYrV66IiooKUVZWJkpLS8UHH3ygaD2Pc7vd056lwwuviIhUIuumdIiIaHYw8ImIVIKBT0Sk\nEgx8IiKVYOATEakEA5+ISCUY+EREKsHAJyJSif8Haft2S59IG+MAAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x484b7d0>"
]
}
],
"prompt_number": 27
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"An easy way to think about comparing samples (unordered vectors) is to ask the question of whether two vectors would be the same if they were sorted:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"sample_one = [1, 2, 2, 3, 4]\n",
"sample_two = [2, 1, 3, 4, 2]\n",
"sample_one == sample_two"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 28,
"text": [
"False"
]
}
],
"prompt_number": 28
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"sorted( sample_one ) == sorted( sample_two )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 29,
"text": [
"True"
]
}
],
"prompt_number": 29
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Lists\n",
"\n",
"More commonly, though, the order of elements in a vector or **list** matters. That is, a typical list (or vector) is a collection of elements, each of which can appear one or more times and for which order matters."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"list_one = [1, 2, 2, 3, 4]\n",
"list_two = [2, 1, 3, 4, 2]\n",
"list_one == list_two"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 30,
"text": [
"False"
]
}
],
"prompt_number": 30
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This type of vector is what we commonly think of as points in two-dimensional space, for example:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"point_one = [1, 1.5]\n",
"point_two = [2, 2.5]\n",
"point_three = [3, 4]\n",
"\n",
"# Ignore the black magic to format these points correctly\n",
"x, y = [[a[i] for a in [point_one, point_two, point_three]] for i in xrange( 2 )]\n",
"\n",
"pPlot = scatter( x, y )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nVTkHAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x487a190>"
]
}
],
"prompt_number": 31
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Of course, the same is true of three-dimensional points:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"point_one = [1, 1.5, 2.5]\n",
"point_two = [2, 2.5, 3.5]\n",
"point_three = [3, 4, 6]\n",
"\n",
"# Tiny bit of black magic again\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"figure( ).gca( projection = \"3d\" )\n",
"x, y, z = [[a[i] for a in [point_one, point_two, point_three]] for i in xrange( 3 )]\n",
"\n",
"gca( ).set_xlabel( \"X\" )\n",
"gca( ).set_ylabel( \"Y\" )\n",
"gca( ).set_zlabel( \"Z\" )\n",
"pPlot = gca( projection = \"3d\" ).scatter( x, y, z, s = 50 )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x4842bd0>"
]
}
],
"prompt_number": 32
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And you can use vectors to represent data in arbitrarily high dimensions, although it gets a bit tricky to visualize! This is why gene expression values are often shown as heatmaps, for example. Suppose we have five different RNA-seq experiments; our genes' transcriptional levels are still just vectors:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"gene_one = [1.5, 0.5, 0.9, 2.4, 3.6]\n",
"gene_two = [0.9, 2.6, 1.7, 9.8, 0.4]\n",
"gene_three = [0.1, 2.2, 5.0, 2.2, 1.1]\n",
"\n",
"def plot_vectors( list_of_vectors ):\n",
"\n",
" figure( figsize = [10, 4] )\n",
" # Show the heatmap\n",
" imshow( list_of_vectors, interpolation = \"none\" )\n",
" # Label each cell with its value\n",
" for gene_index, gene in enumerate( list_of_vectors ):\n",
" for value_index, value in enumerate( gene ):\n",
" text( value_index, gene_index, \"%.2f\" % value, ha = \"center\" )\n",
" # Add a convenient legend\n",
" colorbar( )\n",
"\n",
"plot_vectors( [gene_one, gene_two, gene_three] )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAc0AAAEACAYAAADRMy13AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt8VNW99/HPniRcQkIAhQBJbNCgSbjkYjBeiAQVENSI\nQh+hKhTQovVSPT0t9el5FKz1cuypohyt2h6OigUsrUI1pIVqEEGIKHipVYISSQJEuYQQArnM7OeP\nHcl1wk6GzGRPvu/Xa72c2XutrB/jzvyy1l57b8M0TRMRERE5JVegAxAREXEKJU0RERGblDRFRERs\nUtIUERGxSUlTRETEJiVNERERm0I72vDQoUPccMMNfP3118THx/Pqq6/Sr1+/FvXi4+Pp27cvISEh\nhIWFUVBQ4FPAIiIigdLhkeajjz7KhAkT2LlzJ5dffjmPPvpoq/UMwyA/P5/t27crYYqIiKN1OGmu\nWbOG2bNnAzB79mxef/11r3V1/wQREQkGHU6aZWVlREdHAxAdHU1ZWVmr9QzD4IorriAjI4MXXnih\no92JiIgEXJvnNCdMmMD+/ftbbP/1r3/d5L1hGBiG0erP2LRpE0OGDOHbb79lwoQJJCYmkpWV5UPI\nIiIigdFm0ly3bp3XfdHR0ezfv5/Bgwezb98+Bg0a1Gq9IUOGADBw4ECuu+46CgoKWk2aRkgqeD5q\nT+wiItIFpaSksGPHDr/01dswONGO+v379+fQoUMd7q/Dq2dzcnJ48cUXWbBgAS+++CJTp05tUaeq\nqgq3201kZCTHjh3j73//Ow888EDrP9DzEfTrYuc+jy+E3gsDHUVT5X8OdAStWAncEOggmkkPdABe\nPAncE+ggmrp3WKAjaOm9hXDRwkBH0USvBzr+RdtZah95jLD7FgQ6jCaORw3wOvPYGU4AD7Wj/n8c\nPuxTfx0+p/mLX/yCdevWce655/LWW2/xi1/8AoC9e/dy1VVXAbB//36ysrJITU0lMzOTq6++mokT\nJ/oUsIiISGNh7Si+6vBIc8CAAaxfv77F9qFDh/Lmm28CcPbZZ/ttiC4iIt1ThxNZF+/LeUKzAx2B\nQ4wIdAAOcmGgA3CG2OxAR+AIrrGXBDqELqG3H/tS0mxLWHagI3CIkYEOwEGUNG2Jyw50BI4QkjU2\n0CF0Cadj2tUuJU0REXE0Tc+KiIjYpJGmiIiITRppioiI2KSRpoiIiE1KmiIiIjbpkhMRERGbdE5T\nRETEJn9Oz3b43rMiIiJdQWg7SmsWL17MqFGjGDlyJIsXL26zLyVNERFxNF9u2P7pp5/y+9//nvff\nf5+PPvqIN954gy+//NJrX0qaIiLiaL6MND///HMyMzPp1asXISEhjBs3jr/85S9e+1LSFBERR/Nl\npDly5Eg2btzIoUOHqKqq4s0336SkpMRrX1oIJCIijtbWJSdb6os3iYmJLFiwgIkTJ9KnTx/S0tJw\nubyPJzXSFBERR2trZJkF/KxRac3cuXPZtm0bGzZsoF+/fpx33nle+9JIU0REHM3XRPbNN98waNAg\n9uzZw2uvvcbWrVs7rS8REZGACmtPJqtruWn69OkcPHiQsLAwnnnmGfr27eu1uZKmiIg4WqiPSfOd\nd96x31c7uhIREelywkL815eSpoiIOFq7Rpq+9uW/rkRERE6/sJ7+60tJU0REnE0jTREREZuUNEVE\nRGzyYybrnncEqpoLR6KhYlTr+2vzoTwKjqZZ5cRDjfblQUUiVAyHE4/5JdzA2g7cDdwJvNbK/k+B\nWcC/15dV7WgbTDYAVwDjgd+1sv8IcBswBbgO2NmOtkHkaDH8aTy8OAJeGgnbn/Jed//78GQoFP65\nYVtRHvxvIiwdDu8H7++feeIE1ZdPoHrsOKozL6J20YOt1nNvfJfqrGyqL7qE6qtyGrav/wfVYzKp\nTh9D3ZNtP+oqKIS0o/ioe440e8yBHndB1SzvdULHQcSapttMNxy/E/qsB1cMHB0DYTkQktS58QaM\nG/gDcD8wAPgFMAaIbVYvuX5fR9oGAzewEHgZiAamYiXBhEZ1ngFGYCXFr7A+l2U22wYRVxiMewIG\npUJNJfzxfDhrApzR7HfI44Z3F0D8lU23vXUnTFsPETGwfAycndOybRAwevWix19XY4SHY9bVUXPl\nFDzvbcF10YUn65jlR6j72c/p8ec/YcTEYB48aG13u6n72QLCXv8LxtAh1Iy/AtfkK3G1cWs4x9NI\ns5OFZoHR/xSVzJab3AXgSoCQeDDCoMcMqF3dGRF2EbuAwcAgrKPyEuD9Vuq18lnZbhsMPgK+h/UH\nQRhwNbCuWZ1dwHdfeGcDpcABm22DSJ/BVsIE6BEBA5Lg2N6W9XY8DcOnQ++BDdv2F0C/BIiKh5Aw\nOHcGfBm8v39GeLj1oqYG3G7o36/JfveqVbiuuQYjJsaqf8YZAJgffIhx9jBc3zsLIyyMkGnX4cld\n69fY/a5nO4qPfE6aeXl5JCYmMnz4cB57rPXpkrvvvpvhw4eTkpLC9u3bfe2y8xkGuDdDRQpUTgH3\nZ9Z2Tym44hrquWKtbUHrEHBGo/dn1G9rzAC+AH4K/BoobkfbYLEfGNLo/RCgrFmdJOBv9a8/wkqa\n+222DVJHiuCb7TA4s+n2ylIrGY6+vX6D0bA9stHvX2QsHAve3z/T47GmZ89NxJWVhSsxsen+L7+C\n8sPUXH0t1dmX4V6x0tq+b9/JRApgDB2KuXefX2P3O18eqNmBrjrM7XZz5513sn79emJiYhgzZgw5\nOTkkJTVMl+Tm5rJr1y4KCwvZunUrt99+O1u2tPWgli4gJB36FoMRDrVr4dhU6Lvz1O2CjmGjztnA\nc1h/wn0I/CfwdGcG1QXZ+ZxuAx7EGkmehzWlHWKzbRCqqYQ3pkP2YmvE2Vj+PTD2UeuPV0xOzmQY\n3euzMlwuer67AfNIBTXTpuPe+C4hWWMbKtTV4vnoY3qsfg2OH6dmwpUYYzICF3AgOWX1bEFBAQkJ\nCcTHxwMwY8YMVq9e3SRprlmzhtmzZwOQmZlJeXk5ZWVlREdH+9J15zIiG16HTYbjPwbPofqRZXHD\nPk+xtS1oDQAONnp/oH5bY42fZJcO/B44ijWyPFXbYDEYaPyX/N76bY1FYP1B8Z1LgbOAEzbaBhl3\nLbwxDZJugoSpLfeXfQC5M6zXxw9A0VrrXGhEjLWQ6DtHiyEimH//LEZUX0ImTsTcsQMaJU0jJgbX\ngDMweveG3r1xXXwR5qf/xBg6BLO0YQRulpZixAwNROj+48fb6Pk0PVtaWkpcXMN0SWxsLKWlpaes\n09ZTsbsETxmY9X/d1hVYr10DICQDPIXgLgKzBmpWWguBgtY5WF/o3wC1wGasxTyNldNwTrOw/nWk\nzbbBYhRQBJQANcCbWIt5Gquo3wewAsgE+thsG0RME9bNgwHJkH5P63XmfQXzdltl+HS47Fk4Jwei\nM6C80JrWddfAzpXWQqAgZB48iFl+xHp9/Djut/MxRjdd7e+aMhlzyxZMtxuzqgrPBx9gnHcuRloa\n5pdf4fl6D2ZNDe6/vI5r8pWtdRM8nDI9a9icLjHNpgtF7LbrNMdmQt0GMA/AkTjotQjrix3oOR9q\nV0H1s0CoNUXbZ4W1zwiF3kvg2CTADT3mBfHKWbD+fJsHPAR4gMuwFqz8vX7/ROC9+vchQA/g3lO0\nDUahWCtgZ2P9W7+Ptfr1j/X7f4C1EOhnWNOx5wKPnqJtkNq7Cf61DAaOhmVp1rZLHoaje6zXo+d7\nb+sKhfFL4LVJ1krakfOCcuUsgLm/jNrb7wCPBzweQmb8H0LGjaNu6f8CEDrnh7jOPRfXFZdTc0kW\nuFyEzLr55HnP0Mcfo3badHB7CLn5xuBeOQt+nZ41zOYZrR22bNnCwoULycvLA+CRRx7B5XKxYMGC\nk3Vuu+02srOzmTHDmm5JTExkw4YNLaZnDcOAng80bAjNhrDsjoYWvMr/fOo6gjVVLLbcOyzQEThC\nrweCdSGb79wb38Xz7iYA/qNXbxYtWtRisNRZDMPAnNSO+n9rOZB75JFHWLZsGS6Xi1GjRrF06VJ6\n9mx9qa1P07MZGRkUFhZSVFRETU0NK1euJCen6XRJTk4OL730EmAl2X79+nk/n9l7YUNRwhQRcYSQ\nrLGE3beAsPsWsHDhQv8H4MMlJ0VFRbzwwgt8+OGHfPLJJ7jdblasWOG1K58GtaGhoSxZsoRJkybh\ndruZN28eSUlJPPfccwDMnz+fKVOmkJubS0JCAn369GHp0qW+dCkiItKUD5msb9++hIWFUVVVRUhI\nCFVVVcQ0umSnOZ+mZ08nwzCgX5cIpWvT9KxNmp61TdOztmh61p7jUQOsKVN/Ts9+vx31/9Ryevb5\n55/npz/9Kb1792bSpEm8/PLLXtt3zzsCiYhI8GhjtWz+QVj4r4bS3JdffsmTTz5JUVERe/fupbKy\nkldeeaXNrkRERJyrjUyWHWOV7yz6tOn+bdu2cfHFF3NG/W0Ir7/+ejZv3syNN97Y6s/TSFNERJzN\nh6ecJCYmsmXLFo4fP45pmqxfv57k5GSvXWmkKSIizuZDJktJSWHWrFlkZGTgcrlIT0/nRz/6UWd0\nJSIi0gX08q35z3/+c37+85/bqqukKSIizubHe88qaYqIiLM55SknIiIiAaekKSIiYpOmZ0VERGzS\nSFNERMQmJU0RERGbWn+KV6dQ0hQREWfTSFNERMQmJU0RERGbtHpWRETEJo00RUREbFLSFBERsUnT\nsyIiIjb5+JST9tBDqEVExNlC21Ga+eKLL0hLSztZoqKieOqpp9rsSkRExLl8mJ4977zz2L59OwAe\nj4eYmBiuu+46r/WVNEVExNlOUyZbv34955xzDnFxcZ3dlYiISICcpky2YsUKfvCDH/ijKxERkQBp\nY3o2/yPI//jUP6Kmpoa//vWvPPbYY23WU9IUERFna2P1bHamVb6zaFnr9dauXcv555/PwIED2+xK\nSVNERJztNFynuXz5cmbOnHnKerrkREREnM2HS04Ajh07xvr167n++uttdSUiIuJcPmayPn36cODA\nAX90JSIiEmB+zGQ+T8/m5eWRmJjI8OHDW111lJ+fT1RU1Mm7LTz00EO+dikiItIgpB3FRz7lZ7fb\nzZ133sn69euJiYlhzJgx5OTkkJSU1KTeuHHjWLNmjU+BioiItMopI82CggISEhKIj48nLCyMGTNm\nsHr16hb1TNP0pRsRERHveraj+MinpFlaWtrkdkOxsbGUlpY2qWMYBps3byYlJYUpU6bw2Wef+dKl\niIhIUz6unm1vVx1mGMYp66Snp1NcXEx4eDhr165l6tSp7Ny5s/XK5T9p9OZCMC70Jbzg9KtpgY7A\nGV7R7IZd9z/hx4cROtiDT/4h0CF0XebnwOcALHwg1f/9O2V6NiYmhuLi4pPvi4uLiY2NbVInMjKS\n8PBwACZPnkxtbS2HDh1q/Qca9zQqSpgiIo5gJIIxFYypLFy40P/9+3Gk6VPSzMjIoLCwkKKiImpq\nali5ciU5OTlN6pSVlZ08p1lQUIBpmgwYMMCXbkVERE4yQ+wXX/mUd0NDQ1myZAmTJk3C7XYzb948\nkpKSeO655wCYP38+q1at4tlnnyU0NJTw8HBWrFjhe9QiIiL13H6cnjXMLrK01TAMML4KdBhd34PD\nAh2BM+icpm33f657nNjxoKFzmnaYnh9iGIbfrpowDIMTx+zX79XHtys69NsiIiKOVt2zRztq1/jU\nl5KmiIg4mjvEfyvAlTRFRMTR3Kfj/ng2KWmKiIij1fkxaep5miIi4mhuQm2X1pSXlzN9+nSSkpJI\nTk5my5YtXvvSSFNERBzN1+nZn/zkJ0yZMoVVq1ZRV1fHsWPel+MqaYqIiKP5kjSPHDnCxo0befHF\nFwHr/gNRUVFe62t6VkREHK2aHrZLc7t372bgwIHMmTOH9PR0br31Vqqqqrz2paQpIiKO1tY5zPfy\na3lqYcXJ0lxdXR0ffvghP/7xj/nwww/p06cPjz76qNe+ND0rIiKO1tb07PnZEZyfHXHy/bOLDjfZ\nHxsbS2xsLGPGjAFg+vTpbSZNjTRFRMTR3ITYLs0NHjyYuLi4k4+sXL9+PSNGjPDal0aaIiLiaL5e\np/n0009z4403UlNTwznnnMPSpUu91lXSFBERR/N2/aVdKSkpvP/++7bqKmmKiIij6TZ6IiIiNtW0\ncilJZ1HSFBERR/PnvWeVNEVExNF8PafZHkqaIiLiaDqnKSIiYpOSpoiIiE06pykiImJTDT391peS\npoiIOJqmZ0VERGzS9KyIiIhNuuRERETEJk3PdjZzA/ArwA3cAMZtzfYfARYAe4CewGNgnGuvbTA5\nUgx/ngWV34BhQMaP4KK7W9bbnQ+594KnFsLPhHn51vbCPMi9BzxuOP8WuHSBP6P3n31zoTIXQgfB\nsI9b7j/4G6j4Y/2bOqj+Fwz/FkL6QWUefHMvmG7oNw/OCNLPqN5WTLZjYgLpGGRiNNlfhclrmFQC\nHuAiDFLr6+zC5G/1bdMwuKRZ26BjfgL8EeuTuBSMq7zU+wr4NXA7GBntaxsklDQ7k+kGFgIvA9HA\nVDCvACOhUaVngBFg/K7+gLwfWGazbRBxhcHkJ2BIKlRXwrPnwzkTYFBSQ53j5fDXO2D23yAqFo4d\nsLZ73PDGnfDD9dA3Bn43BhJzmrYNFlFzoP9dsG926/vP+HerAFS+AYcWWwnTdEPZXRC3DsJioOgC\niMiBnkH4GQHf1CfMWzBwAa9gMhwY0Cj5FWAyGLgcF1WY/Dcmo+v3rcXkZgwigd9jci4wMFgTp+kB\nlgE/A/oBD4KZBsbQVur9CRjV/rZBxJ9Jsxs+hPoj4HtgxIIRBlwNrGtWZxdwofXSOBsoBfOAzbZB\nJHKwlTABekbAwCQ4urdpnY//CCOmWQkToM+Z1n9LCmBAAvSPh5AwGDUDPl/tt9D9KjwLXP3t1a1Y\nDn1nWK9PFECPBOgRbx1PfW+AyiD9jIADQAwQioELg+9h8HmzOpEYVNe/rgZ6Ay4MSoEBQD8MQjAY\ngcEX/gs9AL4CBoFxJhihQCawvZV664ExQGQH2gaPanraLq2Jj49n9OjRpKWlccEFF7TZl09Jc+7c\nuURHRzNq1Civde6++26GDx9OSkoK27d3hf9x+4Ehjd4PAcqa1UkC/ma9ND8CSuvb2WkbpA4Xwb7t\nEJvZdPvBQjh+CP5nPDybATtetrZXlEJUXEO9vrHWtu7MUwWVf4PIadb72lIIjW3YHxprbQtSg7BO\neBzHpBaTQkwqMJvUSQe+BX6Lh+cwmVQ/kjwK9G1Ury9wtFnb4HIY68+E7/Sv39aIeRgrGY5vf9sg\n4ybEdmmNYRjk5+ezfft2CgoK2uzLp6Q5Z84c8vLyvO7Pzc1l165dFBYW8vzzz3P77bf70t1pYmc6\n5zagAsyrgZeAZCDEZtsgVF0JK6bDlMXWiLMxTy3s/RBuzrWmaPN/ZSVSo5t+Vm2p/CuEj7WmZoHu\ndjydicHFGCzD5BVMhtDyE9gIDAb+DRc/wmAtJtVBnRy9sXNs/BGYXv+71vgz6l7HFfieNAFM095x\n5tM5zaysLIqKirzuX7NmDbNnW+d5MjMzKS8vp6ysjOjoaF+69dFgYF+j93vrtzViRAD/2fDevBQ4\nCzhx6rbBxl0LK6ZByk2QPLXl/r5x1uKfsN5Wib8U9n1kTdceKW6od6TYGm12ZxUrG6ZmwTqPWVfS\n8L6uGMKC+zNKwyCt/kv9H3iIavYFX4LJ2PptAzDoh8lBrJFlRaN6FUDfoE4O/YFDjd4fqt/W2NfA\n7+rzZSXwCZghNtsGF1+v0zQMgyuuuIKQkBDmz5/Prbfe6rVupy4EKi0tJS6uYYouNjaWkpKSACfN\nUUARmCVYE0ZvAoubVjErgF5g9ABzBZAJRh8wbbQNJqYJr82Dgclw8T2t10m61lrw43FDXTUUb4WL\n/w3OONcacR4ugsih8OlK+P5yv4bfpbiPQNU7MPSVhm29MqCmEGqKIGwoVLwKQ//o9UcEg2OY9MHg\nCCZfAPOa7T8D2I31J2plfcLsj7WG/RBQjkkk8E9Mrg/qpBkPlNWvpegHFGDNgDViNP7D/g9AChhp\n9QsWT9E2yLR1nebu/D0U5e9ps/2mTZsYMmQI3377LRMmTCAxMZGsrKxW63b66tnmQ16jrWk788lG\nby4E48LTH5ARCuZCYDbWcuzvW6tfzfovK+MHWAuBfgamAZwLPNp222C1ZxN8vAyiR8N/p1nbJjwM\nR+oPwDHzYWAiDL8SlowGwwUZt8KgZGv/1UvgxUnWL3H6vOBcOQtQ+gM4vgHqDsCus+DMhWDWWvv6\nz7f+W/k6REwCV++GdkYoRD8NJVfWX3IyN2hXzn7nT5gcx8QFTMagJwYf1E8tno9BFgarMXmu/tKS\nKzDoXZ8cr8RacevBGrEG7cpZACMEzJuA/8L6rsmyVr+ab9fvb34e00bbzmR+DvXLuhYuLOrcvlrR\n1rTrWdnDOCt72Mn3GxZtalFnyBBrrcrAgQO57rrrKCgo8Jo0DdPuRK4XRUVFXHPNNXzyySct9t12\n221kZ2czY4Y1JZWYmMiGDRtaHWkahgHGV76E0j08OOzUdQRe6Y7nwTrm/s+735VnHfGg8YdAh+AI\npueHGIZh+xyhrwzD4P+a/892/YeNXzWJraqqCrfbTWRkJMeOHWPixIk88MADTJw4sdX2nfrbkpOT\nw5IlS5gxYwZbtmyhX79+AZ6aFRGRYFNNjw63LSsr47rrrgOgrq6OG2+80WvCBB+T5syZM9mwYQMH\nDhwgLi6ORYsWUVtrTUvNnz+fKVOmkJubS0JCAn369GHp0qW+dCciItKCL/eeHTZsGDt27LBd36ek\nuXz5qRd2LFmyxJcuRERE2qTb6ImIiNikpCkiImKTnqcpIiJik56nKSIiYpOmZ0VERGyq8eGSk/ZS\n0hQREUfTOU0RERGbdE5TRETEJp3TFBERsUlJU0RExCad0xQREbFJ5zRFRERs0iUnIiIiNvlzetbl\nt55EREQ6gZtQ28Xrz3C7SUtL45prrmmzL400RUTE0U7H6tnFixeTnJzM0aNH26ynkaaIiDiamxDb\npTUlJSXk5uZyyy23YJpmm31ppCkiIo7m60jz3nvv5fHHH6eiouKUdZU0RUTE0arp6XXfsfxtVOVv\n87r/jTfeYNCgQaSlpZGfn3/KvpQ0RUTE0doaafbKzqRXdubJ9wcWPd9k/+bNm1mzZg25ubmcOHGC\niooKZs2axUsvvdTqz9M5TRERcTRfzmk+/PDDFBcXs3v3blasWMFll13mNWGCRpoiIuJwp/M6TcMw\n2tyvpCkiIo52um6jN27cOMaNG9dmHSVNERFxND3lRERExCYlTREREZuqa3TDdhEREVvcdXo0mIiI\niC3uOk3PioiI2OLPpOnzzQ3mzp1LdHQ0o0aNanV/fn4+UVFRpKWlkZaWxkMPPeRrlyIiIifV1YbY\nLr7yeaQ5Z84c7rrrLmbNmuW1zrhx41izZo2vXYmIiLTgcTvonGZWVhZFRUVt1jnVo1ZEREQ6zEnT\ns6diGAabN28mJSWFKVOm8Nlnn3V2lyIi0p2cCLVffNTpY9r09HSKi4sJDw9n7dq1TJ06lZ07d7Ze\n2ZzT6E08MKyzw3McY+f9gQ7BEe7/7L5Ah+AYi26uC3QIzvDK8UBH0IW9A2wEYOHChf7v3o+HcKeP\nNCMjIwkPDwdg8uTJ1NbWcujQIS+1xzcqSpgiIs5wKfBL4JeBS5p2i486PWmWlZWdPKdZUFCAaZoM\nGDCgs7sVEZHuwo9J0+fp2ZkzZ7JhwwYOHDhAXFwcixYtora2FoD58+ezatUqnn32WUJDQwkPD2fF\nihU+By0iInJSrf+68jlpLl++vM39d9xxB3fccYev3YiIiLTO3fGmJ06cYNy4cVRXV1NTU8O1117L\nI4884rW+7ggkIiLO5sO0a69evXj77bcJDw+nrq6OsWPH8u677zJ27NhW6ytpioiIs53wrfl3i1Vr\nampwu91trrvp9IVAIiIincrHhUAej4fU1FSio6MZP348ycnJXrvSSFNERJytrenZT/Lh0/w2m7tc\nLnbs2MGRI0eYNGkS+fn5ZGdnt1pXSVNERJytraSZlG2V76xY5LVqVFQUV111Fdu2bfOaNDU9KyIi\nzlbbjtLMgQMHKC8vB+D48eOsW7eOtLQ0r11ppCkiIs7mwyUn+/btY/bs2Xg8HjweDzfffDOXX365\n1/pKmiIi4mw+XHIyatQoPvzwQ9v1lTRFRMTZfLzkpD2UNEVExNn8+JQTJU0REXE2JU0RERGblDRF\nRERsctJTTkRERALKh0tO2ktJU0REnE2rZ0VERGzSOU0RERGbdE5TRETEJp3TFBERsUnTsyIiIjYp\naYqIiNikc5oiIiI2VfuvKz2EWkREnK2uHaWZ4uJixo8fz4gRIxg5ciRPPfVUm11ppCkiIs7mw/Rs\nWFgYTzzxBKmpqVRWVnL++eczYcIEkpKSWq2vkaaIiDibux2lmcGDB5OamgpAREQESUlJ7N2712tX\n3XSkWQjkASaQDoxttv9bYDWwD7gcuLgdbYOHeawYNs2GE98ABgy/FSPp7qZ1vnoFPnscTBPCIiHz\nGYz+o619pXmw7V4w3ZAwD2PkggD8K/zjyWHP0rNvT1whBq6wEG7dOqtFnbV3r2dX3leEhYdy7dKr\nGJIWDcCuvK/Iu/cfmG6TtHmjGbvgQn+H7z/HiuG9RsdUwq2Q2PSYYnf9MYUJoZFwwTNQf0yxNw8+\nqD+mzpkHI4L1mLoN63tmIPB+K/u/qK/zEfAA8JNG+/4OLMDKELOBn3ZqpF3CaVo9W1RUxPbt28nM\nzPRapxsmTQ+QC8wC+gLPA+dhHZzfCQcmA593oG0QcYVBxm8xBqRi1lZCbgbm0AkYUY2mLSLPhokb\nMHpEWUlyy3yY/B6mxw3v3wVXrIPwGMi9ADMup2nbIGIYBj98eya9B/RudX9h7pcc+vIwd+38ESVb\n9/Lmj//GLe/NwuP2kHvXOmatm0FkTAQvXPAS5+UkMDDpTD//C/zEFQbpv4UBqVBbCWszYMgEaHxc\nRJwNEzaZIrOmAAALyUlEQVRAjygrSW6dD1e+B98dU5fXH1N5F0BsTtO2QeNmrKR4q5f9A4D/Av7a\nbLsbK0m+AQwFsoCrgMTOCbOraCtpHsyHQ/mn/BGVlZVMnz6dxYsXExER4bVeN5yeLcU64PoDIcBI\nWibHPkBM/f72tg0eRu/BGAOsaQsjLAL6JkFV02kLY+BFGD2irDdnZkJVifX6YAFEJmBExGO4wiD+\nBihe7c/w/c40ve/7Ys0uUmaNBCA2cygnyqup3F9JacE+BiT0p198FCFhIYy8IYkvVu/yU8QB0Huw\nlTABwiKshHe82VTYwIushAlwRstjioh4K/l+7wYoCdZj6hKs7xlvBmLNdIU1274NOBv4Xv2+6VgJ\nNMjVtlH6ZkP8wobSWvPaWqZNm8ZNN93E1KlT2+zKp6Rpd9XR3XffzfDhw0lJSWH79u2+dHkaVABR\njd73BY76oa2zmZVFcHi7lRi92fUHGDrZel1VCuGxDfvCY61twcqAlyes4PkxL/LBCzta7D669yhR\ncZEn3/eNjaSitJKjeyvpG9t8e/c4pqgsgkPbrcTozZd/gJj6Y+p4NzumOmQv0OgzIgbrNFOQq25H\nacY0TebNm0dycjL33HPPKbvyaXrWzqqj3Nxcdu3aRWFhIVu3buX2229ny5YtvnTrIyNAbZ3LrK2E\nDd+HjCetEWdrdfa/DV8uhUnv1m/pXp/V3HdvInJIBMe+reLliSs5M/EMvpcV16ROWyPRbqe2EjZa\nxxRejim+O6Ymds9jqmO66WfkwznNTZs2sWzZMkaPHk1aWhoAjzzyCFdeeWWr9X1KmoMHD2bw4MFA\n01VHjZPmmjVrmD17NgCZmZmUl5dTVlZGdHS0L137IBI40uh9BdaIsbPbOpPpqYUN0+HsGzHOan3a\nwjz8MWz5EVy2FqNn/ZRSeEzDtBpYC0AajxKCTOQQ64u/z8BwEqcOp7RgX5OkGTk0koriipPvK0qO\n0jc2Ek+tm4qShpHlkeKKJiPPoOSphY3TYdiNEOdlKuzwx7DVOqbopsdUxwwFGn1GlNRvC3I+XHIy\nduxYPB6P7fqn7Zymt1VHpaWlxMU1fHnExsZSUlLSvLkfDQUOAYex/jz5FGsxT2uaDw3a09b5TNOE\n926BqCSMpNanLcxje2DDNLjkZYy+CQ07zsiAikLMyiJMdw18/SrE5fgpcv+qraql+qg171NzrIav\n1hURParp4rDzchL46OV/AlCypZRe/XoSEd2HoRlDOFR4mPKiI7hr3Pzz1c85LyehRR9BwzRhi3VM\nkehlKuzYHnjHOqaIbPRZDMiAo4XWtK67Bva8ai0E6taaf0elA18CXwM1wJ+xFgIFOR8uOWmv07J6\n9lSrjsxm81KGEcgphBBgCrAMazVsOtZJ9W31+zOwzlO+gDUBbgBbgDuAnl7aBqlvN8FXy6D/aMw3\n0q1tab+2vtQA49z58PGDUH0Ytv7Y+vV1hWFM2YrhCsW84Gn4x5X1lwfMDdqVs5Vlx1h5/WsAeOo8\njPpBMudMHMa256xzmxnzUxk+5RwKc7/iqeHP0aNPGNf+zxQAXKEuJj99BcuufBWP20Pa3NHBu3IW\nrGNqt3VMkVt/TKX8GqqsY4rh8+GTB6HmMBT82NrmCoMrt4IrFDKehrcajqngXDkL1qUi7wIHgXOB\nX9IwBzkP2A9civVd5QKeAT4AIrBW1V6LlSFmEfQrZ8GvN2w3zOYZrZ1qa2u5+uqrmTx5cqsnUW+7\n7Tays7OZMWMGAImJiWzYsKHF9KyVSMc12hIPDPMltKBk3Hx/oENwhPtfvC/QITjGopsfCXQIzvDK\n8UBH0IW9A2wE4IEHwli0aFGLwVJnMQwDktrR178Mn2LzaXrWzqqjnJwcXnrpJQC2bNlCv3792jif\nOb5RUcIUEXGGS7FGw79k4cKF/u++rUtOmhcf+TQ929qqo4cffpg9e6yplvnz5zNlyhRyc3NJSEig\nT58+LF261PeoRUREvuPHp5z4lDTtrjpasmSJL92IiIh4p4dQi4iI2KSHUIuIiNh0Gi4lsUtJU0RE\nnE3TsyIiIjYpaYqIiNikc5oiIiI2+XGk2Q2fpykiItIxSpoiIiI2KWmKiEi3NXfuXKKjoxk1apSt\n+kqaIiLicB2/+eycOXPIy8uz3ZOSpoiIOFxdO0pTWVlZ9O/f33ZPWj0rIiIO579rTpQ0RUTE4dp6\n1ukmYPNp60lJU0REHK6tkeYF9eU7/+VTT0qaIiLicP67u4EWAomIiMN1fPXszJkzufjii9m5cydx\ncXEsXbq0zZ400hQREYfr+Ehz+fLl7aqvpCkiIg6n1bMiIiI2tbV69vRS0hQREYfz30IgJU0REXE4\nTc+KiIjYpJGmiIiITRppioiI2KSRpoiIiE0aaYqIiNikS05ERERs0khTRETEJofcsL24uJjx48cz\nYsQIRo4cyVNPPdWiTn5+PlFRUaSlpZGWlsZDDz3kS5ciIiLNdPyG7e3l00gzLCyMJ554gtTUVCor\nKzn//POZMGECSUlJTeqNGzeONWvW+BRoYOwGhgU6iC7P3J+PMTg70GE4QlH+HuKzzwp0GF1fWT5E\nZwc6Cgd4B7g00EF0AQ4ZaQ4ePJjU1FQAIiIiSEpKYu/evS3qmabpSzcBVBToAJyhLD/QEThGUf6e\nQIfgDDqmbNoY6AC6CP+NNE/b8zSLiorYvn07mZmZTbYbhsHmzZtJSUlhypQpfPbZZ6erSxEREayR\npt3im9OyEKiyspLp06ezePFiIiIimuxLT0+nuLiY8PBw1q5dy9SpU9m5c2erPyc9fcjpCOe02bs3\nkqFDu1ZMRnyAA2jF3q9haHygo2hqCDGBDqFVEUR2udjS4wMdQUt793S9Y4p0I9ARtLB3Lwwd2vXi\n8j//XXKC6aOamhpz4sSJ5hNPPGGrfnx8vHnw4MEW21NSUkxARUVFRcXhJSUlxdfUYlt7Y+vfv79P\n/fk00jRNk3nz5pGcnMw999zTap2ysjIGDRqEYRgUFBRgmiYDBgxoUW/Hjh2+hCIiIt2Q6ec1Mz4l\nzU2bNrFs2TJGjx5NWloaAA8//DB79liLHebPn8+qVat49tlnCQ0NJTw8nBUrVvgetYiISAAYpr/T\ntIiIiEOdttWzwSQvL4/ExESGDx/OY489Fuhwuqy5c+cSHR3NqFGjAh1Kl2bnJiBiOXHiBJmZmaSm\nppKcnMx9990X6JC6NLfbTVpaGtdcc02gQ+k2NNJsxu12c95557F+/XpiYmIYM2YMy5cvb3HDBoGN\nGzcSERHBrFmz+OSTTwIdTpe1f/9+9u/f3+QmIK+//rqOKS+qqqoIDw+nrq6OsWPH8pvf/IaxY8cG\nOqwu6be//S0ffPABR48edegNZJxHI81mCgoKSEhIID4+nrCwMGbMmMHq1asDHVaXlJWVRf/+/QMd\nRpdn9yYgYgkPDwegpqYGt9vd6sJBgZKSEnJzc7nlllscfAMZ51HSbKa0tJS4uLiT72NjYyktLQ1g\nRBJMvN0ERBp4PB5SU1OJjo5m/PjxJCcnBzqkLunee+/l8ccfx+XS17g/6dNuxjB0obB0jrZuAiIN\nXC4XO3bsoKSkhHfeeYf8/PxAh9TlvPHGGwwaNIi0tDSNMv1MSbOZmJgYiouLT74vLi4mNjY2gBFJ\nMKitrWXatGncdNNNTJ06NdDhOEJUVBRXXXUV27ZtC3QoXc7mzZtZs2YNw4YNY+bMmbz11lvMmjUr\n0GF1C0qazWRkZFBYWEhRURE1NTWsXLmSnJycQIclDmbnJiBiOXDgAOXl5QAcP36cdevWnbwGXBo8\n/PDDFBcXs3v3blasWMFll13GSy+9FOiwugUlzWZCQ0NZsmQJkyZNIjk5mRtuuEGrHL2YOXMmF198\nMTt37iQuLo6lS5cGOqQu6bubgLz99tsnnyubl5cX6LC6pH379nHZZZeRmppKZmYm11xzDZdffnmg\nw+rydFrJf3TJiYiIiE0aaYqIiNikpCkiImKTkqaIiIhNSpoiIiI2KWmKiIjYpKQpIiJik5KmiIiI\nTUqaIiIiNv1/P2JgtCK1ZYoAAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x50e3b90>"
]
}
],
"prompt_number": 33
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Finally, this gets us to the rub: vectors are exactly what we're used to computing pairwise similarity between when we talk about \"correlation\" or \"distance.\" We can construct two vectors that aren't at all similar to each other:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"vector_one = standard_normal( 10 )\n",
"vector_one"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 34,
"text": [
"array([-2.0027178 , -0.47785016, -0.61008166, 1.38917403, 1.3122081 ,\n",
" -0.00692014, -1.54072744, 1.28934064, 0.87345316, -1.96714076])"
]
}
],
"prompt_number": 34
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"vector_two = standard_normal( 10 )\n",
"vector_two"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 35,
"text": [
"array([-1.28987011, -1.11553982, 0.65948704, -0.43544649, 0.18619802,\n",
" -0.16796514, -1.39972314, 0.3060784 , 0.14347861, 1.7946309 ])"
]
}
],
"prompt_number": 35
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And when we look at them, we can tell they're nothing like each other:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plot_vectors( [vector_one, vector_two] )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x497b810>"
]
}
],
"prompt_number": 36
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If we first consider a new vector that's almost exactly like number one, it looks similar:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"vector_close_to_one = vector_one + ( standard_normal( len( vector_one ) ) / 5 )\n",
"vector_close_to_one"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 37,
"text": [
"array([-1.91106957, -0.32146407, -0.73570591, 1.5681102 , 1.26688094,\n",
" -0.11684202, -1.29905685, 1.03243251, 0.98176084, -2.15346029])"
]
}
],
"prompt_number": 37
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plot_vectors( [vector_one, vector_two, vector_close_to_one] )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nABjOXwpgUuIxH0t4AAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x50e3e10>"
]
}
],
"prompt_number": 38
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And when we compare these vectors using a distance measure like *Euclidean distance* - the straight line distance between them in space - they have a low value:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import scipy.spatial.distance\n",
"\n",
"scipy.spatial.distance.euclidean( vector_one, vector_close_to_one )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 39,
"text": [
"0.51540756925062059"
]
}
],
"prompt_number": 39
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"scipy.spatial.distance.euclidean( vector_one, vector_two )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 40,
"text": [
"4.7770445451435632"
]
}
],
"prompt_number": 40
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Other similarity measures, like *Pearson correlation*, only take into account whether two vectors' values change in the same directions at the same time, not how similar they are. For example, we can create a vector that covaries exactly with the first, but with different values:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"vector_covarying_with_one = vector_one + 10\n",
"vector_covarying_with_one"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 41,
"text": [
"array([ 7.9972822 , 9.52214984, 9.38991834, 11.38917403,\n",
" 11.3122081 , 9.99307986, 8.45927256, 11.28934064,\n",
" 10.87345316, 8.03285924])"
]
}
],
"prompt_number": 41
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Its Euclidean distance from the first vector is very high, but it correlates with it very well:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import scipy.stats\n",
"\n",
"scipy.stats.pearsonr( vector_one, vector_covarying_with_one )[0]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 42,
"text": [
"1.0"
]
}
],
"prompt_number": 42
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"scipy.stats.pearsonr( vector_one, vector_close_to_one )[0]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 43,
"text": [
"0.99199179139554561"
]
}
],
"prompt_number": 43
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"scipy.stats.pearsonr( vector_one, vector_two )[0]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 44,
"text": [
"0.1055905833816177"
]
}
],
"prompt_number": 44
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"And of course one can see these patterns graphically as well:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pPlot = scatter( vector_one, vector_close_to_one )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n",
"text": [
"<matplotlib.figure.Figure at 0x4efbd90>"
]
}
],
"prompt_number": 45
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pPlot = scatter( vector_one, vector_covarying_with_one )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x4a424d0>"
]
}
],
"prompt_number": 46
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pPlot = scatter( vector_one, vector_two )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nSUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x48467d0>"
]
}
],
"prompt_number": 47
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Vector exercises"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**1.** Make up two samples from the space of real numbers between 0 and 1 inclusive that are identical, but which are not identical vectors."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# An example\n",
"sample_example = [0.86, 0.75, 0.309]\n",
"sample_one = []\n",
"sample_two = []"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 48
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Should be True\n",
"sorted( sample_one ) == sorted( sample_two )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 49,
"text": [
"True"
]
}
],
"prompt_number": 49
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Should be False\n",
"sample_one == sample_two"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 50,
"text": [
"True"
]
}
],
"prompt_number": 50
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**2.** Do you expect them to have any relationship when scatter plotted?"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Type your answer here: ***insert answer here***\n",
"pPlot = scatter( sample_one, sample_two )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n6NAhBYPBjA0GAHBmwgEBALi/zYg7qe/3m+4yMZ8kHTp0SLNmzdLAwMBkt3xPnM63c+dO+f1+BQIB\nrV+/Xjdv3pyq1u/obsdCknbs2CGfz6dAIKD29vZ72na6TXS+WCymxx57TIsXL9aSJUv04osvTmXb\n4+bk+Emf3cO1fPlyrV27diravSdOZhscHFRlZaX8fr+Ki4vV2to69os5voqRATt37jQNDQ3GGGPq\n6+vNrl270mpGRkZMQUGBuXr1qhkaGjKBQMB0dHQYY4y5cOGC+da3vmWGhoaMMcb84x//mLrmx8Hp\nfMYYc+3aNVNWVmby8/PNjRs3pqz38XA63+9//3uTTCaNMcbs2rXLuv1UutuxMMaYM2fOmDVr1hhj\njGltbTWlpaXj3na6OZnv+vXrpr293RhjzL///W9TWFh4X833f4cOHTIbN240a9eunbK+x8PpbJs3\nbza/+c1vjDHGDA8Pm8HBwTFfb0acQdzvN905nU+SnnnmGb3wwgtT1vO9cDpfKBTSrFmf/VMsLS1V\nPB6fuuYt7nYspNEzl5aWanBwUH19fePadrpNdL7+/n7l5ORo2bJlkqS5c+fK7/ert7d3ymcYi5P5\nJCkejyscDuupp56SmWG/gXcy282bN3Xx4kVt2bJFkpSVlaUHHnhgzNebEQFxv99053S+5uZmeTwe\nLV26dGoavkdO57vVyy+/rPLy8slrdhzG0+udanp7e8c153Sa6Hy3B3dPT4/a29tVWlo6uQ3fIyfH\nT5KefvppHTx4MPWhZSZxcuyuXr2q+fPn68knn9SKFSu0detWffzxx2O+3oS/5nqv7veb7iZrvk8+\n+UT79+/XuXPnUs9Nx6eayTx+t+5r9uzZ2rhx48QbzYDx9CpNz3HIhInOd+t2H330kSorK3X48GHN\nnTs3o/05NdH5jDF6/fXXtWDBAi1fvnxG/ikOJ8duZGREly5dUmNjo1auXKm6ujrV19frZz/72R33\nM2UBcesb3O3cbrf6+vqUk5Oj69eva8GCBWk1ubm5isViqeVYLCaPxyPps4Rcv369JGnlypWaNWuW\nbty4Yb2vYrJM1nxXrlxRT0+PAoGApM9Ofx955BG1tbVZ9zNZJvP4SdIrr7yicDis8+fPZ7bxCbhb\nr7aaeDwuj8ej4eHhu2473SY6X25urqTPvqL+xBNPaNOmTdb7n6abk/lee+01tbS0KBwO69NPP9WH\nH36ozZs36+TJk1PW/1iczGaMkcfj0cqVKyVJlZWV1j+yOkqGrp04snPnztQd1gcOHLBepBweHjZf\n/epXzdWrV81//vOfURdnjhw5Yn76058aY4x5//33TV5e3tQ1Pw5O57vVTL1I7WS+s2fPmuLiYvPP\nf/5zSvu+k/Eci1svBL755pupC4HjPY7Tycl8//3vf80PfvADU1dXN+V9j5eT+W4VjUbNd77znSnp\nebyczvaNb3zDvP/++8YYY55//nnz7LPPjvl6MyIgbty4YVatWmV8Pp8JhULmgw8+MMYYk0gkTHl5\neaouHA6bwsJCU1BQYPbv3596fmhoyGzatMksWbLErFixwrzxxhtTPcKYnM53q4cffnjGBYTT+bxe\nr/nyl79sli1bZpYtW2a2b98+5TPcztbrkSNHzJEjR1I1P/rRj0xBQYFZunSpefvtt8fcdqaZ6HwX\nL140LpfLBAKB1PE6e/bstMwwFifH7/+i0eiM+xaTMc5me+edd0xJSYlZunSp+e53v3vXbzFxoxwA\nwGrmXaYHAMwIBAQAwIqAAABYERAAACsCAgBgRUAAAKwICACAFQEBALD6H0kMTjXEL6ZMAAAAAElF\nTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x505a690>"
]
}
],
"prompt_number": 51
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**3.** Make up two vectors from the space of real numbers between 0 and 1 inclusive that are perfectly correlated, but which are neither identical vectors nor identical samples."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# An example\n",
"vector_example = [0.86, 0.75, 0.309]\n",
"vector_one = []\n",
"vector_two = []"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 52
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Should be 1\n",
"scipy.stats.pearsonr( vector_one, vector_two )[0]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stderr",
"text": [
"/usr/lib/python2.7/dist-packages/numpy/core/_methods.py:55: RuntimeWarning: Mean of empty slice.\n",
" warnings.warn(\"Mean of empty slice.\", RuntimeWarning)\n",
"/usr/lib/python2.7/dist-packages/numpy/core/_methods.py:67: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n",
"/usr/lib/python2.7/dist-packages/scipy/stats/stats.py:2417: RuntimeWarning: invalid value encountered in double_scalars\n",
" r = (r_num / r_den)\n"
]
},
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 53,
"text": [
"nan"
]
}
],
"prompt_number": 53
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Should be False\n",
"sample_one == sample_two"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 54,
"text": [
"True"
]
}
],
"prompt_number": 54
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Should be False\n",
"sorted( sample_one ) == sorted( sample_two )"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 55,
"text": [
"True"
]
}
],
"prompt_number": 55
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**4.** Recall that Spearman correlation measures the covariation in rank order of two vectors, but neither their absolute similarity (Euclidean distance) nor their covariation in values (Pearson correlation). Make up two vectors from the space of real numbers between 0 and 1 inclusive that are perfectly Spearman correlated, but poorly (absolute value <0.25) Pearson correlated and not close in Euclidean distance."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"vector_one = []\n",
"vector_two = []\n",
"scipy.stats.spearmanr( vector_one, vector_two )[0]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 56,
"text": [
"array([], dtype=float64)"
]
}
],
"prompt_number": 56
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"scipy.stats.pearsonr( vector_one, vector_two )[0]"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 57,
"text": [
"nan"
]
}
],
"prompt_number": 57
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 57
}
],
"metadata": {}
}
]
}
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment