Skip to content

Instantly share code, notes, and snippets.

@herrfz
Created February 10, 2013 14:22
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 herrfz/4749724 to your computer and use it in GitHub Desktop.
Save herrfz/4749724 to your computer and use it in GitHub Desktop.
Coursera Data Analysis -- in Python
{
"metadata": {
"name": "k-means_clustering"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"K-means clustering -- in Python"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import numpy as np"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 13
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# as always, create the same data as in video in R"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 14
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%load_ext rmagic"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 15
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%R -o x,y\n",
"set.seed(1234); par(mar=c(0,0,0,0))\n",
"x <- rnorm(12,mean=rep(1:3,each=4),sd=0.2)\n",
"y <- rnorm(12,mean=rep(c(1,2,1),each=4),sd=0.2)\n",
"plot(x,y,col='blue',pch=19,cex=2)\n",
"text(x+0.05,y+0.05,labels=as.character(0:11))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\n+n+BkunjqrR7ZQAAAABJRU5ErkJggg==\n"
}
],
"prompt_number": 16
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# perform k-means clustering\n",
"from scipy.cluster.vq import kmeans, vq\n",
"\n",
"data = np.vstack(zip(x, y))\n",
"\n",
"centers, _ = kmeans(data, 3)\n",
"cluster, _ = vq(data, centers)\n",
"\n",
"cluster"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "pyout",
"prompt_number": 19,
"text": [
"array([2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0])"
]
}
],
"prompt_number": 19
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# plot the clusters\n",
"plot(data[cluster==0,0], data[cluster==0,1], 'og',\n",
" data[cluster==1,0], data[cluster==1,1], 'or',\n",
" data[cluster==2,0], data[cluster==2,1], 'ok')\n",
"\n",
"plot(centers[:,0], centers[:,1], '+', markersize=15);"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD9CAYAAABHnDf0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGSFJREFUeJzt3X1MVecBx/EfFgMqTp1m4IBmFVgFES6zHTMOvXShIAxq\nxCXS4AyoI03lSrI/urVrBtnG3P5xvCzLtnQ2He26l9TO5CKtrl6tOl82qZg1sZbthhcryc3ClFnw\nimd/uGKvwOHlXriXc7+f5CaXcx7PeTx5/Hl4znOeJ8IwDEMAAEuZF+wKAAACj3AHAAsi3AHAggh3\nALAgwh0ALIhwBwALMg337u5u5ebmas2aNUpPT1djY+OY5Vwul7KyspSeni673T4T9QQATEGE2Tj3\n69ev6/r167LZbBoYGNC6dev05ptvKjU1daRMf3+/NmzYoLfeeksJCQnyeDxasWLFrFQeADA20zv3\nuLg42Ww2SVJMTIxSU1N17do1nzKvvfaaSktLlZCQIEkEOwCEgMjJFnS73Wpvb1d2drbP9qtXr8rr\n9So3N1c3b97Uvn37tGPHDp8yERERgaktAISZaU8iYEzCzZs3jXXr1hmHDh0ate/ZZ5811q9fb9y6\ndcvweDxGSkqK8cEHH/iUmeRpwsL3v//9YFchZHAt7uNa3Me1uM+f7Jzwzt3r9aq0tFTl5eXasmXL\nqP2JiYlasWKFFixYoAULFmjjxo26dOmSUlJSpve/DQDAb6Z97oZhaNeuXUpLS1NNTc2YZZ566imd\nOnVKw8PDunXrls6dO6e0tLQZqSwAYHJM79xPnz6tlpYWZWRkKCsrS5JUX1+vrq4uSVJVVZVWr16t\ngoICZWRkaN68edqzZw/hboKhovdxLe7jWtzHtQgM06GQATtJRMT0HwoAQJjyJzt5QxUALIhwBwAL\nItwBwIIIdwCwIMIdACxo0tMPABjbSadTbzc2KnJoSHeiovSkw6GNRUXBrhbCHOEO+OGk06m39u3T\njzo7R7a98P/vBDyCiW4ZwA9vNzb6BLsk/aizU0ebmoJUI+Aewh3wQ+TQ0JjbHxocnOWaAL4Id8AP\nd6Kixtw+HB09yzUBfBHugB+edDj0QlKSz7bnk5KUV10dpBoB9zC3DOCnk06njjY16aHBQQ1HRyuv\nupqHqQgIf7KTcAeAEMXEYQAAH4Q7AFgQ4Q4AFmQa7t3d3crNzdWaNWuUnp6uxsbGccteuHBBkZGR\neuONNwJeSQDA1JhOPzB//nwdOHBANptNAwMDWrdunfLy8pSamupTbnh4WM8995wKCgp4cAoAIcA0\n3OPi4hQXFydJiomJUWpqqq5duzYq3JuamrRt2zZduHBh3GPV1taOfLfb7ayTCAAPcLlccrlcATnW\npIdCut1ubdq0Sf/4xz8UExMzsr23t1fl5eV65513VFlZqeLiYm3dutX3JAyFBIApm/GhkAMDA9q2\nbZsaGhp8gl2SampqtH///pFKEOIAEHwT3rl7vV59/etf1+bNm1VTUzNq/6pVq0YC3ePxaOHChfr1\nr3+tkpKS+yfhzh0ApmzG3lA1DEM7d+7U8uXLdeDAgQkPVlFRQbcMAASIP9lp+kD19OnTamlpUUZG\nhrKysiRJ9fX16urqkiRVVVVN66QAgJnF3DIAEKKYWwYA4INwBwALItwBwIIIdwCwIMIdACyIcAcA\nCyLcAcCCCHcAsCDCHQAsiHAHAAsi3AHAggh3ALAgwh0ALIhwBwALItwBwIJMw727u1u5ublas2aN\n0tPT1djYOKrMq6++qszMTGVkZGjDhg3q6OiYscoCACbHdLGO69ev6/r167LZbBoYGNC6dev05ptv\nKjU1daTMX//6V6WlpWnJkiVqa2tTbW2tzp4963sSFusAgCmbscU64uLiZLPZJEkxMTFKTU3VtWvX\nfMqsX79eS5YskSRlZ2erp6dnWhUBAASO6Rqqn+Z2u9Xe3q7s7Oxxy7z00ksqLCwcc19tbe3Id7vd\nLrvdPulKAkA4cLlccrlcATnWpNZQHRgYkN1u1/e+9z1t2bJlzDLHjx/Xs88+q9OnT2vZsmW+J6Fb\nBgCmzJ/snPDO3ev1qrS0VOXl5eMGe0dHh/bs2aO2trZRwQ4AmH2md+6GYWjnzp1avny5Dhw4MGaZ\nrq4uPfHEE2ppadFXvvKVsU/CnTsATJk/2Wka7qdOndLGjRuVkZGhiIgISVJ9fb26urokSVVVVdq9\ne7cOHTqkhx9+WJI0f/58nT9/PmAVBIBwNWPhHiiEOwBM3YwNhQQAzE2EOwBYEOEOABZEuAOABRHu\nAGBBhDsAWBDhDgAWRLgDgAUR7gBgQYQ7AFgQ4Q4AFkS4A0EUoHUZgFEIdyCICHfMFMIdACyIcAcA\nCyLcAcCCTMO9u7tbubm5WrNmjdLT09XY2DhmOYfDoZSUFGVmZqq9vX1GKgoAmDzTBbLnz5+vAwcO\nyGazaWBgQOvWrVNeXp5SU1NHyrS2turDDz/U1atXde7cOT3zzDM6e/bsjFccADA+03CPi4tTXFyc\nJCkmJkapqam6du2aT7gfPnxYO3fulCRlZ2erv79ffX19io2NncFqA3OHyzX+qJi6OvM/a7ff+wBT\nZRrun+Z2u9Xe3q7s7Gyf7b29vUpMTBz5OSEhQT09PaPCvba2duS73W6XnRaLMDFRQH/qnwbCnMvl\nkitA42MnFe4DAwPatm2bGhoaFBMTM2r/gwu4RkREjCpTSwsGAFMP3vjWTfSrnYkJR8t4vV6Vlpaq\nvLxcW7ZsGbU/Pj5e3d3dIz/39PQoPj5+2hUCAPjPNNwNw9CuXbuUlpammpqaMcuUlJTolVdekSSd\nPXtWS5cupb8dAILMtFvm9OnTamlpUUZGhrKysiRJ9fX16urqkiRVVVWpsLBQra2tSk5O1qJFi3Tw\n4MGZrzUAwJRpuH/1q1/V3bt3JzxIc3NzwCoEAPAfb6gCgAUR7kAQMSIYMyXCeHAc40ycJCJi1HBJ\nAIA5f7KTO3cAsKBJv6EKILhOOp16u7FRkUNDuhMVpScdDm0sKgp2tRCiCHdgDjjpdOqtffv0o87O\nkW0v/P87AY+x0C0DzAFvNzb6BLsk/aizU0ebmoJUI4Q6wh2YAyKHhsbc/tDg4CzXBHMF4Q7MAXei\nosbcPhwdPcs1wVxBuANzwJMOh15ISvLZ9nxSkvKqq4NUI4Q6xrkDc8RJp1NHm5r00OCghqOjlVdd\nzcNUi/MnOwl3AAhR/mQnQyEBPzD2HKGKcAemibHnCGV0ywDT9L38fP3w7bdHbX8xP18/aGubsfPy\n20L4oFsGCIJgjD3ntwVMlulQyMrKSsXGxmrt2rVj7vd4PCooKJDNZlN6erpefvnlmagjEJKCMfac\nN1UxWabhXlFRoTaTXy+bm5uVlZWl9957Ty6XS9/+9rd1586dgFcSCEXBGHvOm6qYLNNumZycHLnd\n7nH3r1y5Uh0dHZKkGzduaPny5YqMpKcH4eGTbpAXPzX2vGCGx57zpiomy68k3rNnj5544gl9/vOf\n182bN/WHP/xh3LK1tbUj3+12u+wsQQML2FhUNKt93U86HHqhs9Ona+b5pCQV8KaqJbhcLrlcroAc\na8LRMm63W8XFxbp8+fKofT/84Q/l8Xj0s5/9TJ2dncrLy9OlS5e0ePFi35MwWgYIGN5UDR9BGy1z\n5swZvfDCC5KkpKQkPfLII7py5Yoee+wxfw4LwMRs/7aAucmvicNWr16tY8eOSZL6+vp05coVrVq1\nKiAVAwBMn2m3TFlZmU6cOCGPx6PY2FjV1dXJ6/VKkqqqquTxeFRRUaGuri7dvXtX3/3ud/X000+P\nPgndMgAwZUwcBgAW5E92Mp87AFgQ4Q4AFkS4A4AFEe4AYEGEOwBYEOEOABZEuAOABRHuAGBBhDsA\nWBDhDgAWRLgDgAUR7gBgQYQ7AFgQ4Q4AFkS4A4AFEe4AYEGm4V5ZWanY2FitXbt23DIul0tZWVlK\nT0+X3W4PdP0AANNguhLTu+++q5iYGH3zm9/U5cuXR+3v7+/Xhg0b9NZbbykhIUEej0crVqwYfRJW\nYgKAKZuxlZhycnK0bNmycfe/9tprKi0tVUJCgiSNGewAgNkX6c8fvnr1qrxer3Jzc3Xz5k3t27dP\nO3bsGLNsbW3tyHe73U4XDgA8wOVyyeVyBeRYEy6Q7Xa7VVxcPGa3zN69e3Xx4kX95S9/0a1bt7R+\n/Xo5nU6lpKT4noRuGQCYMn+y068798TERK1YsUILFizQggULtHHjRl26dGlUuAMAZpdfQyGfeuop\nnTp1SsPDw7p165bOnTuntLS0QNUNADBNpnfuZWVlOnHihDwejxITE1VXVyev1ytJqqqq0urVq1VQ\nUKCMjAzNmzdPe/bsIdwBIARM2OcekJPQ5w4AUzZjQyEBAHMT4Q4AFkS4A4AFEe4AYEGEOwBYEOEO\nABZEuAOABRHuAGBBhDsAWBDhDgAWRLgDgAUR7gBgQYQ7AFgQ4Q4AFkS4A4AFEe4AYEGm4V5ZWanY\n2FitXbvW9CAXLlxQZGSk3njjjYBWDgAwPabhXlFRoba2NtMDDA8P67nnnlNBQQGrLQFAiDBdQzUn\nJ0dut9v0AE1NTdq2bZsuXLhgWq62tnbku91ul91un2wdASAsuFwuuVyugBxrwjVU3W63iouLdfny\n5VH7ent7VV5ernfeeUeVlZUqLi7W1q1bR5+ENVQBYMqCtoZqTU2N9u/fP1IBAhwAQoNpt8xE/v73\nv2v79u2SJI/HoyNHjmj+/PkqKSkJSOUAANPjV7j/85//HPleUVGh4uJigh0AQoBpuJeVlenEiRPy\neDxKTExUXV2dvF6vJKmqqmpWKggAmLoJH6gG5CQ8UAWAKQvaA1UAQGgi3AHAggh3ALAgwh0ALIhw\nBwALItwBwIIIdwCwIMIdACyIcAcACyLcAcCCCHcAsCDCHQAsiHAHAAsi3AHAggh3ALAg03CvrKxU\nbGys1q5dO+b+V199VZmZmcrIyNCGDRvU0dExI5UEAEyNabhXVFSora1t3P2rVq3SyZMn1dHRoRdf\nfFHf+ta3Al5BTJ/T6VR+fr7sdrvy8/PldDqDXSUAs8R0mb2cnBy53e5x969fv37ke3Z2tnp6egJW\nMfjH6XRq37596uzsHNn2yfeioqJgVQvALPFrgexPe+mll1RYWDju/tra2pHvdrtddrs9UKfGGBob\nG32CXboX7k1NTYQ7EKJcLpdcLldAjhWQcD9+/Lh+85vf6PTp0+OW+XS4Y+YNDQ2NuX1wcHCWawJg\nsh688a2rq5v2sfwO946ODu3Zs0dtbW1atmyZv4dDgERFRY25PTo6epZrAiAY/BoK2dXVpa1bt6ql\npUXJycmBqhMCwOFwKCkpyWdbUlKSqqurg1QjALMpwjAMY7ydZWVlOnHihDwej2JjY1VXVyev1ytJ\nqqqq0u7du3Xo0CE9/PDDkqT58+fr/Pnzo08SESGT02CGOJ1ONTU1aXBwUNHR0aqurqa/HZhD/MlO\n03APFMIdAKbOn+zkDVUAsCDCHQAsiHAHAAsi3AHAggh3ALCggE0/AABW5jzqVONrjRoyhhQVESXH\n0w4V5YXu0GLCHQAm4Dzq1L6f71Nn1qcm4vv5/yfiC9GAZ5w7AEwgvyJfb3/h7dHbu/LV9tL406L7\ni3HuADCDhoxxJuIbDt2J+Ah3AJhAVMQ4E/E9FLoT8RHuADABx9MOJbU/MBHfxSRVbw/difjoc58G\nl0tirREgvDiPOtX0epMGhwcV/VC0qrdXz/jDVCYOm2W1tfc+ADCT/MlOhkICwAwI9rh4wj0EOJ1O\nNTY2amhoSFFRUXI4HMy7DsxBn3TZhsK4eMI9yJxOp/bt2+ezmPUn3wl4YG75JNwbX2v0CXZJ6szq\nVNPrTbMW7qajZSorKxUbG6u1a9eOW8bhcCglJUWZmZlqb28PeAWtrrGx0SfYpXvh3tTUFKQaAfBX\nKIyLNw33iooKtbWN//ZVa2urPvzwQ129elW/+tWv9MwzzwS8glY3NDROIxgM3ZcjAJgLhXHxpt0y\nOTk5crvd4+4/fPiwdu7cKUnKzs5Wf3+/+vr6FBsbG9BKBoPLde8zlro68z9rt09+qGRU1DiNIDp0\nX44AYM7xtEOdP+/06ZpJupik6r2zNy7erz733t5eJSYmjvyckJCgnp6eMcO9trZWV69e1blz5xQT\nE6PY2NiQfnA4UUAHaiikw+FQZ2enT9dMUlKSqqtD9+UIAOY+6Vf3GRe/d+Jx8S6XS67x7iqnyO8H\nqg+OwYyIiBiz3OOPP66WlhYeHD7gk797U1OTBgcHFR0drerq6rC+JoAVFOUVTfnhqd1ul/1Td5V1\nE3UTmPAr3OPj49Xd3T3yc09Pj+Lj48csa/bgMNyDrKioKOyvATBXzFaXrb/8CveSkhI1Nzdr+/bt\nOnv2rJYuXTpufzsPDgFYwWx12frLNNzLysp04sQJeTweJSYmqq6uTl6vV5JUVVWlwsJCtba2Kjk5\nWYsWLdLBgwfHPRYPDgFg9piG++9+97sJD9Dc3DypE/HgEABmz6y9ocqDQwCYPbM6/YBVHhwy3S+A\nUMfcMtNAuAOYrGDNDkm4A8AUTTawgzk7JOEOAFNgFth2u29gB3N2SNZQBYApMAvsB7tsgzk7JOEO\nAFMwlcAO5uyQhDsATMFUAtvxtENJ7Uk+25IuJql6+8y/30OfOwBMwVSm853u7JCBEGFMd2ntqZzE\njxW8ASDUOI86fQN7+8wEtj/ZGRbhzgLUAOYif7LT8t0yLEANIBxZ/oEqC1ADCEeWD3fmkQcQjiwf\n7swjDyAcWT7cHQ6HkpIeGGcaxHnkA7X4rRVwLe7jWtzHtQiMCcO9ra1Nq1evVkpKin7yk5+M2u/x\neFRQUCCbzab09HS9/PLLM1HPaSsqKlJDQ4Py8/O1adMm5efnq6GhIWgPU2m493Et7uNa3Me1CAzT\n0TLDw8Pau3evjh07pvj4eD3++OMqKSlRamrqSJnm5mZlZWXpxz/+sTwejx599FGVl5crMjJ0BuJY\nZR55AJgs0zv38+fPKzk5WV/4whc0f/58bd++XX/+8599yqxcuVI3btyQJN24cUPLly8PqWAHgLBk\nmPjjH/9o7N69e+Tn3/72t8bevXt9ygwPDxubNm0yVq5cacTExBitra2jjiOJDx8+fPhM4zNdprfY\nERERZrslSfX19bLZbHK5XOrs7FReXp4uXbqkxYsXj5Rh6gEAmF2m3TLx8fHq7u4e+bm7u1sJCQk+\nZc6cOaNvfOMbku6NQnnkkUd05cqVGagqAGCyTMP9scce09WrV+V2u3X79m39/ve/V0lJiU+Z1atX\n69ixY5Kkvr4+XblyRatWrZq5GgMAJmTaLRMZGanm5mbl5+dreHhYu3btUmpqqn75y19KkqqqqvT8\n88+roqJCmZmZunv3rn7605/qs5/97KxUHgAwjmn31o/hyJEjxqOPPmokJycb+/fvH7X/+PHjxmc+\n8xnDZrMZNpvN+MEPfhDI04eMiooK43Of+5yRnp4+bpnq6mojOTnZyMjIMC5evDiLtZtdE12LcGkT\nhmEYXV1dht1uN9LS0ow1a9YYDQ0NY5YLh7YxmWsRLm3j448/Nr785S8bmZmZRmpqqvGd73xnzHJT\nbRcBC/c7d+4YSUlJxr/+9S/j9u3bRmZmpvH+++/7lDl+/LhRXFwcqFOGrJMnTxoXL14cN9CcTqex\nefNmwzAM4+zZs0Z2dvZsVm9WTXQtwqVNGIZhfPTRR0Z7e7thGIZx8+ZN44tf/OKofyPh0jYmcy3C\nqW3897//NQzDMLxer5GdnW28++67Pvun0y4CNv3AZMbE//83hUCdMmTl5ORo2bJl4+4/fPiwdu7c\nKUnKzs5Wf3+/+vr6Zqt6s2qiayGFR5uQpLi4ONlsNklSTEyMUlNTde3aNZ8y4dI2JnMtpPBpGwsX\nLpQk3b59W8PDw6O6tqfTLgIW7r29vUpMTBz5OSEhQb29vT5lIiIidObMGWVmZqqwsFDvv/9+oE4/\np4x1rXp6eoJYo+AJ1zbhdrvV3t6u7Oxsn+3h2DbGuxbh1Dbu3r0rm82m2NhY5ebmKi0tzWf/dNpF\nwF4lncyY+C996Uvq7u7WwoULdeTIEW3ZskUffPBBoKowpzx4RzKZ62dF4dgmBgYGtG3bNjU0NCgm\nJmbU/nBqG2bXIpzaxrx58/Tee+/pP//5j/Lz8+VyuWS3233KTLVdBOzOfTJj4hcvXjzy68fmzZvl\n9Xr173//O1BVmDMevFY9PT2Kj48PYo2CJ9zahNfrVWlpqcrLy7Vly5ZR+8OpbUx0LcKtbUjSkiVL\nVFRUpL/97W8+26fTLgIW7pMZE9/X1zfyv8/58+dlGEZYDpssKSnRK6+8Ikk6e/asli5dqtjY2CDX\nKjjCqU0YhqFdu3YpLS1NNTU1Y5YJl7YxmWsRLm3D4/Gov79fkvTxxx/r6NGjysrK8ikznXYRsG6Z\nyYyJ/9Of/qRf/OIXioyM1MKFC/X6668H6vQhpaysTCdOnJDH41FiYqLq6urk9Xol3bsOhYWFam1t\nVXJyshYtWqSDBw8GucYzZ6JrES5tQpJOnz6tlpYWZWRkjPzjra+vV1dXl6TwahuTuRbh0jY++ugj\n7dy5U3fv3tXdu3e1Y8cOfe1rX/PJzum0iwgjXB5HA0AYsfxKTAAQjgh3ALAgwh0ALIhwBwALItwB\nwIIIdwCwoP8BN8rj6EQyO+8AAAAASUVORK5CYII=\n"
}
],
"prompt_number": 20
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# again generate data for plotting heatmap using R"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 21
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%R -i x,y -o dataMatrix\n",
"dataFrame <- data.frame(x=x,y=y)\n",
"set.seed(1234)\n",
"dataMatrix <- as.matrix(dataFrame)[sample(1:12),]"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 22
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# show heatmaps of the original matrix and after reordered by cluster\n",
"f, (ax1, ax2) = subplots(ncols=2)\n",
"\n",
"ax1.matshow(dataMatrix, aspect='auto', cmap='hot')\n",
"\n",
"centers, _ = kmeans(dataMatrix, 3)\n",
"cluster, _ = vq(dataMatrix, centers)\n",
"dataMatrixOrdered = np.vstack((dataMatrix[cluster==0,:], dataMatrix[cluster==1,:], dataMatrix[cluster==2,:]))\n",
"ax2.matshow(dataMatrixOrdered, aspect='auto', cmap='hot')\n",
"\n",
"f.tight_layout();"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\n"
}
],
"prompt_number": 34
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment