From 196a0d130212db0fcee7dcb7e6a5ac8322f450d9 Mon Sep 17 00:00:00 2001 From: Max Berggren Date: Sun, 2 Nov 2014 18:27:09 +0100 Subject: [PATCH 1/3] added a notebook I used to get acquainted with vectorization --- .../02_01_Vectorization_Explained.ipynb | 170 ++++++++++++++++++ 02_Vectorization_Explained/vectorization.png | Bin 0 -> 5492 bytes 2 files changed, 170 insertions(+) create mode 100644 02_Vectorization_Explained/02_01_Vectorization_Explained.ipynb create mode 100644 02_Vectorization_Explained/vectorization.png diff --git a/02_Vectorization_Explained/02_01_Vectorization_Explained.ipynb b/02_Vectorization_Explained/02_01_Vectorization_Explained.ipynb new file mode 100644 index 0000000..7d78c38 --- /dev/null +++ b/02_Vectorization_Explained/02_01_Vectorization_Explained.ipynb @@ -0,0 +1,170 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:5d8d5c3736ee9df8b26fa4cd33cc96cd66647dc9ad14119c2dc58257aa771af8" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import random\n", + "import math\n", + "import numpy as np\n", + "from IPython.display import Image, display \n", + "random.seed(0)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 6 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Lets generate a random array for illustration purposes!" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "def generateNoise(width,height):\n", + " noise = [[r for r in range(width)] for i in range(height)]\n", + "\n", + " for i in range(0,height):\n", + " for j in range(0,width):\n", + " noise[i][j] = random.randint(0,9)\n", + "\n", + " return noise\n", + "\n", + "A = generateNoise(30,10)\n", + "A = np.asarray(noise)\n", + "A[A > 1] = 0" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 7 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we have an array with ones randomly distributed." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "print A" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "[[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0]\n", + " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0]\n", + " [0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n", + " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0]\n", + " [0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1]\n", + " [0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n", + " [0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0]\n", + " [0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0]\n", + " [0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0]\n", + " [0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's an illustration that made the vectorization \"click\" for me. Hopefully it makes sence to somebody else than me." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "display(Image(filename='vectorization.png'))" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "display_data", + "png": "iVBORw0KGgoAAAANSUhEUgAAAyEAAACxCAYAAADTYLItAAAACXBIWXMAAAsTAAALEwEAmpwYAAAK\nrGlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjarZZnUFP5Gsbfc056oSVEOqE3QXqVXkMRpION\nkEAIhBBCgopdERVYUVREwIaugCi4FkDWgohiWwR7X5BFRV0XCzZU7geWcO/cez/cmfvOnJnfPPP+\nn/P8z/nyANAucSUSEaoCkC2WSaOD/diJScls4hOgAAPIoA90Li9P4hsVFQ7/eRCAj3cAAQC4ac2V\nSETwv40qPy2PB4BEAUAqP4+XDYAcB0CO8CRSGQDGBwCjhTKJDABbDwBMaWJSMgBWAwBMwQQfAQBm\n6gR3AQBTGhvtD4DdAyDRuFypAID6BwCw83kCGQANBwC2Yr5QDEBzBAAvXgaXD0CTAcD07OwcPgBt\nDwCYp/6Tj+BfPFMVnlyuQMETdwEAAFKAME8i4i6G//dki+ST7zAEAFqGNCQaAEgASH1WTpiCxamz\nIidZyJ/IBIDUZ8hD4iaZl+efPMl8bkDYJMuz4nwnmSudOiuUcWInWZoTrfBPywuMUfinccIVGUSz\nFJwuDOJMckFGbMIk5wvjZ01yXlZM2NSOv0KXyqMVmdOlQYo7ZudNZeNxpzLIMmJDprIlKjLw0wIC\nFbo4TrEvkfkpPCWiKMV+mihYoeflxyjOyqSxCj2TGxo15ROl+D4ghAjgAk+WtkgGAOCfI1ksFQoy\nZGxfiUSUxuaIeTbT2fa2do4AiUnJ7Ilf+p4FCAAgrCtTWm4HgFsxACKY0rhGACefATA+TmlG7wBo\nmwBO9/Lk0vwJDQcAgAcKKAMTNEEPjMAcrMEenMEDfCAQQiESYiEJ5gMPMiAbpLAQlsIqKIIS2ATb\noAp2wz6oh8NwFFrhFJyDi3AVeuE2PIR+GIJXMAIfYQxBECJCRxiIJqKPmCBWiD3iinghgUg4Eo0k\nISmIABEjcmQpsgYpQcqRKmQv0oD8gpxEziGXkT7kPjKADCPvkK8ohtJQJqqLmqIzUFfUFw1DY9F5\nqADNRQvQQnQjWonWoofQFvQcehW9jfajr9BRDDAqxsIMMGvMFfPHIrFkLB2TYsuxYqwCq8WasHas\nG7uJ9WOvsS84Ao6BY+OscR64EFwcjofLxS3HleKqcPW4FlwX7iZuADeC+4Gn43XwVnh3PAefiBfg\nF+KL8BX4A/gT+Av42/gh/EcCgcAimBFcCCGEJEImYQmhlLCT0EzoIPQRBgmjRCJRk2hF9CRGErlE\nGbGIuIN4iHiWeIM4RPxMopL0SfakIFIySUxaTaogHSSdId0gPSeNkVXIJmR3ciSZT15MLiPvJ7eT\nr5OHyGMUVYoZxZMSS8mkrKJUUpooFyiPKO+pVKoh1Y06myqkrqRWUo9QL1EHqF9oajRLmj9tLk1O\n20iro3XQ7tPe0+l0U7oPPZkuo2+kN9DP05/QPysxlGyUOEp8pRVK1UotSjeU3iiTlU2UfZXnKxco\nVygfU76u/FqFrGKq4q/CVVmuUq1yUuWuyqgqQ9VONVI1W7VU9aDqZdUXakQ1U7VANb5aodo+tfNq\ngwyMYcTwZ/AYaxj7GRcYQ0wC04zJYWYyS5iHmT3MEXU1dUf1ePVF6tXqp9X7WRjLlMVhiVhlrKOs\nO6yv03Sn+U5Lm7ZhWtO0G9M+aWhr+GikaRRrNGvc1viqydYM1MzS3KzZqvlYC6dlqTVba6HWLq0L\nWq+1mdoe2jztYu2j2g90UB1LnWidJTr7dK7pjOrq6QbrSnR36J7Xfa3H0vPRy9TbqndGb1ifoe+l\nL9Tfqn9W/yVbne3LFrEr2V3sEQMdgxADucFegx6DMUMzwzjD1YbNho+NKEauRulGW406jUaM9Y0j\njJcaNxo/MCGbuJpkmGw36Tb5ZGpmmmC6zrTV9IWZhhnHrMCs0eyROd3c2zzXvNb8lgXBwtUiy2Kn\nRa8laulkmWFZbXndCrVythJa7bTqm46f7jZdPL12+l1rmrWvdb51o/WADcsm3Ga1TavNmxnGM5Jn\nbJ7RPeOHrZOtyHa/7UM7NbtQu9V27Xbv7C3tefbV9rcc6A5BDisc2hzeOlo5pjnucrznxHCKcFrn\n1On03dnFWerc5DzsYuyS4lLjcteV6RrlWup6yQ3v5ue2wu2U2xd3Z3eZ+1H3vzysPbI8Dnq8mGk2\nM23m/pmDnoaeXM+9nv1ebK8Urz1e/d4G3lzvWu+nPkY+fJ8DPs99LXwzfQ/5vvGz9ZP6nfD75O/u\nv8y/IwALCA4oDugJVAuMC6wKfBJkGCQIagwaCXYKXhLcEYIPCQvZHHKXo8vhcRo4I6EuoctCu8Jo\nYTFhVWFPwy3DpeHtEWhEaMSWiEezTGaJZ7VGQiQnckvk4yizqNyoX2cTZkfNrp79LNoueml0dwwj\nZkHMwZiPsX6xZbEP48zj5HGd8crxc+Mb4j8lBCSUJ/Qnzkhclng1SStJmNSWTEyOTz6QPDoncM62\nOUNzneYWzb0zz2zeonmX52vNF80/vUB5AXfBsRR8SkLKwZRv3EhuLXc0lZNakzrC8+dt573i+/C3\n8ofTPNPK056ne6aXp78QeAq2CIYzvDMqMl4L/YVVwreZIZm7Mz9lRWbVZY2LEkTN2aTslOyTYjVx\nlrgrRy9nUU6fxEpSJOnPdc/dljsiDZMeyEPy5uW1yZgyieya3Fy+Vj6Q75Vfnf95YfzCY4tUF4kX\nXVtsuXjD4ucFQQU/L8Et4S3pXGqwdNXSgWW+y/YuR5anLu9cYbSicMXQyuCV9asoq7JW/bbadnX5\n6g9rEta0F+oWriwcXBu8trFIqUhadHedx7rd63Hrhet7Njhs2LHhRzG/+EqJbUlFybdSXumVn+x+\nqvxpfGP6xp4y57JdmwibxJvubPbeXF+uWl5QPrglYkvLVvbW4q0fti3YdrnCsWL3dsp2+fb+yvDK\nth3GOzbt+FaVUXW72q+6uUanZkPNp538nTd2+exq2q27u2T31z3CPff2Bu9tqTWtrdhH2Je/79n+\n+P3dP7v+3HBA60DJge914rr++uj6rgaXhoaDOgfLGtFGeePwobmHeg8HHG5rsm7a28xqLjkCR+RH\nXv6S8sudo2FHO4+5Hms6bnK85gTjRHEL0rK4ZaQ1o7W/Lamt72Toyc52j/YTv9r8WnfK4FT1afXT\nZWcoZwrPjJ8tODvaIel4fU5wbrBzQefD84nnb3XN7uq5EHbh0sWgi+e7fbvPXvK8dOqy++WTV1yv\ntF51vtpyzenaid+cfjvR49zTct3leluvW29738y+Mze8b5y7GXDz4i3Orau3Z93uuxN3597duXf7\n7/Hvvbgvuv/2Qf6DsYcrH+EfFT9WeVzxROdJ7e8Wvzf3O/efHggYuPY05unDQd7gqz/y/vg2VPiM\n/qziuf7zhhf2L04NBw33vpzzcuiV5NXY66I/Vf+seWP+5vhfPn9dG0kcGXorfTv+rvS95vu6D44f\nOkejRp98zP449qn4s+bn+i+uX7q/Jnx9PrbwG/Fb5XeL7+0/wn48Gs8eH5dwpVwAAMAAAE1PB3hX\nB0BPAmD0AlCUJjrx310emWr1/40nejMAADgD1PkAxK0ECO8A2NUBYLISgNYBEAUAsT6AOjgonr8n\nL93BfsKLJgXAfx4ff68LQGwH+C4dHx/bOT7+fT8Adh+gI3eiiwMAEFQA9hABAC6b6f1bJ/4H6Fn/\npQqU9roAAAAgY0hSTQAAbXUAAHOgAAD83QAAg2QAAHDoAADsaAAAMD4AABCQ5OyZ6gAACkJJREFU\neNrs3c9V20ofBuDf3EMDviU4W3a0EEowJXBLcEqwS0hKgBJMCbBjG0oIJcy3yPig4w/LtrD193nO\nYZGgIEfzMtJryVLKOQcAAEBb/rEJAAAAJQQAAFBCAAAAlBAAAEAJAQAAUEIAAAAlBAAAUEIAAACU\nEAAAQAkBAABQQgAAACUEAABACQEAAJQQAABACQEAAFBCAAAAJQQAAEAJAQAAlBAAAAAlBAAAUEIA\nAAAlBAAAQAkBAACUEAAAACUEAABQQgAAACUEAABACQEAAJQQAAAAJQQAAFBCAAAAlBAAAEAJAQAA\nlBAAAICLuurzi0spZUPUXM452QqyK7tyhVzJmIzJlEz1jTMhAACAEgIAAIzX1VBeaM71Z/NSSpbd\nWZbhZfd1uald9np9O9hlZdecaE6UMRmTKTmRqS1nQgAAACUEAABQQgAAAJQQAABACQEAAFBCAAAA\nJQQAAJiodOhexZ2+uJSyIWou5+zm5bIru3KFXMmYjMmUTPWOMyEAAIASAgAAjNfVUF7oKY+4f11u\nape9Xt8OdtlTtgOyK7tyZVm5asp8JGNDmbfGnNUxcyYEAABQQgAAACUEAABACQEAAJQQAAAAJQQA\nAFBCAACAiUqH7sPc6YtLKRui5nLObl4uu7IrV8iVjMmYTMlU7zgTAgAAKCEAAMB4XQ3lhR66bCyl\nj7NVr8tN7bLX69vBLnvKdkB2ZVeu5EqumpIbGety3jLHjZ8zIQAAgBICAAAoIQAAAEoIAACghAAA\nANS6sgkA/t/OA7Z6/WBX5ApkjKFxJgQAAGi3MPe5Ie+0eU6Uc3bzctmV3fOMYS/mSrmSKxmTsaFl\nTKYcy+3jciwGNREpVpw5k19e1qUOyBUyBkoIwCml9ugdtx02coWMwQRLyKFfouov3etyU7vs9fp2\nsMuesh2QXdmVK7mSq6bkRsa6nLfMcUoInJOZGgAAJQSYcCs+/nNKuea6auUauULGQAmhr1yXCgBA\nhOeEAAAALXMmBJiyussR8pHLgVwhY6CE0NsZ03NCAABQQoApc6995AoZg26kPofzHO+cT3ySSmMb\nz6GcCZHd4Y/zzhj2Yq6UK7mSMRkbWsZkahrHPU04E4JfJAAAWuXuWAAAQKsGcybk0OnE6jWQr8tN\n7bLX69vBLnvKdkB2ZVeu5EqumpIbGety3jLHjZ8zIQAAQKt8JgTgEz7DhFwhY3A5zoQAAABKCAAA\noIQAAAAoIQAAgBICAABQKx26D3OnLy6lbIiac4cM2ZVduUKuZEzGZEqm+siZEAAAQAkBAADGazAP\nKzx02VhKH2erXpeb2mWv17eDXfaU7cDwsmtZzInmxL6QGxkbyv5wzFkdM2dCAAAAJQQAAFBCAAAA\nlBAAAEAJAQAAUEIAAAAlBAAAmKh06D7Mnb64lLIhai7n7Oblsiu7coVcyZiMyZRM9Y4zIQAAgBIC\nAACM19VQXuihy8ZSSpbdWRbZlV25ioh4XW5ql71e3w52Wbkyd5m7ZEqmhsmZEAAAQAkBAACUEAAA\nACUEAABQQgAAAJQQAABACQEAACYqHbpXcacvLqVsiJrLObt5uezKrlwhVzImYzIlU73jTAgAAKCE\nAAAA49Xry7EAAIDxcSYEAABQQgAAACUEAABACQEAAJQQAAAAJQQAAFBCAAAAJQQAAEAJAQAAlBAA\nAAAlBAAAUEIAAACUEAAAQAkBAACUEAAAACUEAABQQgAAAE6Vc+70a49ZROTK13Ln+/cRsYqITUQ8\nX3gTtbmum7Kun+X/PbvgumZlXauI+BMRi0/G5mZnHBZd56VvXyfmNiLiofL9hwuO76JktrqumdyO\nJneHstbm+PctI8esa7mz/WYTm7emuo/dHftNRMwvuK5VZV2/y/91N6uT28dOOH/znWOATcnAVzI8\n6PmrrcA97Gyw6i/loqaErD753vfKv/194dC0ua4oB1W5rOfSO+rNzroWNeO3mGoJ2ZPd+YESstqz\nzR9KjuZl2d/lQOkSB2HVkjMr4/wst8PN2p6d+KoH49+3jJyyrtVYSsgZ8zPmfez24G1RmU8utc6H\nksWbPese1T5W/o6yXcdsJyNN58PBz1+tXI6Vc76LiB/lj3c555RzThHxVAbhlHciniIiRcS3iHi/\n8Etvc10REf+W9T21sK7bsq6184H12S1Zfa9kYNHwHZBFRPyKiLfys36Vd2HO/U7cTfn5/5U/v0fE\nY/n7G7kdfdbaHv++ZaTNdY0xP2Pex96XdT6WP6/L78T9hd4M+hURL5V1vTccE/kbfv7m5WtdWde6\nFJD7mKiuPxMyv/DPn1Ua7mxkY7d9R/i7qnBZKaX7kp91KRBNJoztwd9b5e/edr53rtz+Kgdi75Wf\ntyh/fpPb0WftlPHv4xwpI93mZ6z72Fk55nip/N1LzbHIV3P4LT7efI34eyZk1oM5WP668VYKz+NO\nJmJPJiYxD3ZRQh5SSjmltN24Lx39Uu5ei1n9uhn4uP7Z8/9a2k03soiIt5zzuhzgzVNKXU0Mp+Z2\nFh/XnVbfgZHbaWRtSOMvI9Oeq8acw2X8vXTmJcZ99YH8nXAsXLbX404xmZSrDtZ5l3N+LK15+4v5\nMz4uHTin9/JuxGdeSisdqtua7/1rX3weKaV5Kcs/IiJyzuuS20Vc7nKPc+W2egD6oyc7P7ltL2vH\njH9d1mTEXGUf+/UcVgvI7QjeCJC/8xaQuwb5G41OL8cqbfkpRnqNJKOwzeaqcgZv1iCzn532n+98\n75zm8fcDcDel4Pvsz3SyZvzl56v5GaPt5YjVd8E/u0z2nLZ38nsacwGRv5Ns4uPzoXdT3xidlpCU\n0mfXaJ5T29cLbu9w8dBSkF03fXn3EbHe3kyhfPDuW0TMyvWvx3qLjw+ib3N/X94JOfd1+jfxcQeO\nu7JeuZ1O1k4Z/2Oztr0Ly1JGRp+fMe9j1yVX22wtK3PzuXP4UH7+FAqI/B33Wp/j42zRoat/pjEP\ndnyL3n336a67fdui5mctzhzQU9YV8feysqa3W5vVrGt1gYA+71nXs1v0fnof84c9z6BYHZnb3XGr\nm8i+mtvnmizN5Xa4WTvyFpenjP+xWfvK7SvbzMip6xr8LS4vkJ+x7mOjUjyOeU7IV3JY9//6uXv8\nNeR9rPwdbVWzrvuG+Rv+/NXzhxWuBtbp/gztNR85RpN9TkjDhxXKbQ/yO+bctpy17zU75aEbzXNC\nepwfc9WB+Wtq+1j5M38NpYQM6c4n30sbH9NBnCemn/+J6XJ74fyGJ6af2zLauVSvTZ6Ybq7qA09M\nl79Jz1+ppggAAACc3T82AQAAoIQAAABKCAAAgBICAAAoIQAAAEoIAACghAAAAEoIAACAEgIAACgh\nAAAASggAAKCEAAAAKCEAAIASAgAAKCEAAABKCAAAoIQAAAAoIQAAgBICAACghAAAAEoIAACghAAA\nACghAACAEgIAAKCEAAAASggAAKCEAAAAKCEAAIASAgAAoIQAAABKCAAAgBICAAD0wv8AAAD//wMA\n2qOJU7LchecAAAAASUVORK5CYII=\n", + "text": [ + "" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's do it in code!" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "B = np.zeros_like(A) # an array of A's size with only zeros\n", + "\n", + "B[1:-1,1:-1] = A[0:-2, 1:-1] + \\\n", + " A[2:, 1:-1] + \\\n", + " A[1:-1, 0:-2] + \\\n", + " A[1:-1, 2:]\n", + "print B" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "[[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n", + " [0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 2 0 1 0 0]\n", + " [0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0]\n", + " [0 0 0 0 0 0 0 1 1 0 1 1 0 1 1 1 0 0 1 2 1 1 1 0 1 0 0 0 0 0]\n", + " [0 0 0 0 0 0 1 1 1 2 0 0 0 1 1 1 0 0 1 1 2 1 0 2 0 1 0 0 1 0]\n", + " [0 0 0 0 0 0 0 2 2 0 1 0 0 0 1 0 0 0 0 1 0 0 2 0 1 0 0 0 0 0]\n", + " [0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0]\n", + " [0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 0]\n", + " [0 1 0 1 2 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 0]\n", + " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +} \ No newline at end of file diff --git a/02_Vectorization_Explained/vectorization.png b/02_Vectorization_Explained/vectorization.png new file mode 100644 index 0000000000000000000000000000000000000000..90a7e559f76651fa735d4c127e7fd88179a5fe3d GIT binary patch literal 5492 zcmbVPcT`jBvfl!St~3$py@`OrK|ml>DWM7o(xoGvgf1wEQlx6=Ez(3OL4uTkfPm6M zQv{?dfkY4p5a|$JaNX-&XWjemJL~+@bFpaumEU+LId$Q}2xCp~vp#ZF7{}kc?bOGH+ z3#06ZA70f7h+6f+dnuwmyZ34?h~#A9;L3dwzG`2D&~*zDqB#-;*Co;eoJ6g1S*kaT z(R4{S_sRo0S=qJf&gVy;Q zl4=8JU=$Ut7&*(I>I_NmxT-pM z@;k^Q_!u?#nVtA)u;dIfe4M4P88bUCi9KZgLNWcEHnlbrqPCh4{te0VY9+i#U=}T)qG4 zB^T*WQAZE+wTAe!o`M!ZGEww`__P|a*iR-R6^XgUvL=?F+0JS@e++vG4Bns{(Fhc@ zP8cta8@ce4E1b18d8edivDzeHCxvzt(I9n37 zooi~P706PeoiSAbJWY(YTq$wr50X6@3l;v`O&4t0)v@+-5v3NU zsV34lsa`sGc>bxMtLh_VXf&-`SrRm|J~}tL9B9_eppqk1;#Vp^GCT?&QI)uw?wzgx zjwoXVkAWq@^67J8unfcW$PAnWo0z2-uUQ-7$og@WQ^i6}=PfIQX*I-j3DN)ZlIEC^ zoT;2mz4`X@71uE~Pc1pKdNsK=>!K-8J;5`EKFRU@hWo}vuZxH5Y!@{R$VQX;9NlE} zv*U792AG26f^@b+w{NVBt(1=)T3tk^e{f8=?OIh*rBqcj8d$z>q@UN|Xg&Ida};#f z!)wo@^zM1DKfPwg_bU3v=|2yAnyH$s*uPCz?)pm3#;a&ts+!KaraotiXG(d^X{}_6 zA<%?dzrdqF`1)ZWVmWDLWts8^I56aU;Y4J0&nLo1^yle{5N*HP@FIMf^ym4C2Noy7 zHU(?w3$+rHcB@R}+%b&gs1ExWo|vnevRw*YW3hv=smWs62<>HUo8;@s+DY5Vf=O8% z@*JvH`16`_U9!F9m#^)+c)I1@X&!nr_VaO0EPGGYyQ+_?PZeiprj;k&jvryWp&_x?}(t#O~1f6h*Ruv(c}R9c%ICu0X5YOg>w_ic#1zIB+77oC9@~4@oUc)_Kc1tUv&CEE%R$

E>PM1ViMH|8Fa#4udlb(Yn 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 literal 0 HcmV?d00001 From e228ceda1528daeaf91cd1319dc1dad70bf3e771 Mon Sep 17 00:00:00 2001 From: Max Berggren Date: Sun, 2 Nov 2014 18:47:28 +0100 Subject: [PATCH 2/3] some clearification --- ...1_Vectorization_Explained-checkpoint.ipynb | 169 ++++++++++++++++++ .../02_01_Vectorization_Explained.ipynb | 13 +- 2 files changed, 175 insertions(+), 7 deletions(-) create mode 100644 02_Vectorization_Explained/.ipynb_checkpoints/02_01_Vectorization_Explained-checkpoint.ipynb diff --git a/02_Vectorization_Explained/.ipynb_checkpoints/02_01_Vectorization_Explained-checkpoint.ipynb b/02_Vectorization_Explained/.ipynb_checkpoints/02_01_Vectorization_Explained-checkpoint.ipynb new file mode 100644 index 0000000..c338baa --- /dev/null +++ b/02_Vectorization_Explained/.ipynb_checkpoints/02_01_Vectorization_Explained-checkpoint.ipynb @@ -0,0 +1,169 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:79f6f8d38fa86628294d097bb12e0276d748f4c87e67bc8618a9f14678a01e02" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import random\n", + "import math\n", + "import numpy as np\n", + "from IPython.display import Image, display \n", + "random.seed(0)" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 6 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Lets generate a random array for illustration purposes!" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "def generateNoise(width,height):\n", + " noise = [[r for r in range(width)] for i in range(height)]\n", + "\n", + " for i in range(0,height):\n", + " for j in range(0,width):\n", + " noise[i][j] = random.randint(0,9)\n", + "\n", + " return noise\n", + "\n", + "A = generateNoise(30,10)\n", + "A = np.asarray(noise)\n", + "A[A > 1] = 0" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 7 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we have an array with ones randomly distributed." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "print A" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "[[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0]\n", + " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0]\n", + " [0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n", + " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0]\n", + " [0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1]\n", + " [0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n", + " [0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0]\n", + " [0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0]\n", + " [0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0]\n", + " [0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]\n" + ] + } + ], + "prompt_number": 8 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's an illustration that made the vectorization \"click\" for me. Hopefully it makes sence to somebody else than me." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "display(Image(filename='vectorization.png'))" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "metadata": {}, + "output_type": "display_data", + "png": "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\n2qOJU7LchecAAAAASUVORK5CYII=\n", + "text": [ + "" + ] + } + ], + "prompt_number": 9 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In words what we are going to to is to sum all neighouring elements in the array. Let's do it in code!" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "B = np.zeros_like(A) # an array of A's size with only zeros\n", + "\n", + "B[1:-1,1:-1] = A[0:-2, 1:-1] + \\\n", + " A[2:, 1:-1] + \\\n", + " A[1:-1, 0:-2] + \\\n", + " A[1:-1, 2:]\n", + "print B" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "[[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n", + " [0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 0 0 2 0 1 0 0]\n", + " [0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0]\n", + " [0 0 0 0 0 0 0 1 1 0 1 1 0 1 1 1 0 0 1 2 1 1 1 0 1 0 0 0 0 0]\n", + " [0 0 0 0 0 0 1 1 1 2 0 0 0 1 1 1 0 0 1 1 2 1 0 2 0 1 0 0 1 0]\n", + " [0 0 0 0 0 0 0 2 2 0 1 0 0 0 1 0 0 0 0 1 0 0 2 0 1 0 0 0 0 0]\n", + " [0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0]\n", + " [0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 0]\n", + " [0 1 0 1 2 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 0]\n", + " [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]\n" + ] + } + ], + "prompt_number": 10 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Se how every element now is the sum of it's neighbours?" + ] + } + ], + "metadata": {} + } + ] +} \ No newline at end of file diff --git a/02_Vectorization_Explained/02_01_Vectorization_Explained.ipynb b/02_Vectorization_Explained/02_01_Vectorization_Explained.ipynb index 7d78c38..c338baa 100644 --- a/02_Vectorization_Explained/02_01_Vectorization_Explained.ipynb +++ b/02_Vectorization_Explained/02_01_Vectorization_Explained.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:5d8d5c3736ee9df8b26fa4cd33cc96cd66647dc9ad14119c2dc58257aa771af8" + "signature": "sha256:79f6f8d38fa86628294d097bb12e0276d748f4c87e67bc8618a9f14678a01e02" }, "nbformat": 3, "nbformat_minor": 0, @@ -118,7 +118,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Let's do it in code!" + "In words what we are going to to is to sum all neighouring elements in the array. Let's do it in code!" ] }, { @@ -156,12 +156,11 @@ "prompt_number": 10 }, { - "cell_type": "code", - "collapsed": false, - "input": [], - "language": "python", + "cell_type": "markdown", "metadata": {}, - "outputs": [] + "source": [ + "Se how every element now is the sum of it's neighbours?" + ] } ], "metadata": {} From f06656f78b98da6626c6b477e290227a36ff0291 Mon Sep 17 00:00:00 2001 From: Max Berggren Date: Mon, 3 Nov 2014 19:54:40 +0100 Subject: [PATCH 3/3] added styling --- .../02_01_Vectorization_Explained.ipynb | 171 +++++++++++++++++- 1 file changed, 168 insertions(+), 3 deletions(-) diff --git a/02_Vectorization_Explained/02_01_Vectorization_Explained.ipynb b/02_Vectorization_Explained/02_01_Vectorization_Explained.ipynb index c338baa..92e4f60 100644 --- a/02_Vectorization_Explained/02_01_Vectorization_Explained.ipynb +++ b/02_Vectorization_Explained/02_01_Vectorization_Explained.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:79f6f8d38fa86628294d097bb12e0276d748f4c87e67bc8618a9f14678a01e02" + "signature": "sha256:fa0bb89a881c0f866351843897a1c3c5a2b2035f3996132bfa36341ea45901d6" }, "nbformat": 3, "nbformat_minor": 0, @@ -44,7 +44,7 @@ " return noise\n", "\n", "A = generateNoise(30,10)\n", - "A = np.asarray(noise)\n", + "A = np.asarray(A)\n", "A[A > 1] = 0" ], "language": "python", @@ -108,7 +108,7 @@ "output_type": "display_data", "png": "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\n2qOJU7LchecAAAAASUVORK5CYII=\n", "text": [ - "" + "" ] } ], @@ -161,6 +161,171 @@ "source": [ "Se how every element now is the sum of it's neighbours?" ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "from IPython.core.display import HTML\n", + "css_file = '../styles/numericalmoocstyle.css'\n", + "HTML(open(css_file, \"r\").read())" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "html": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "metadata": {}, + "output_type": "pyout", + "prompt_number": 11, + "text": [ + "" + ] + } + ], + "prompt_number": 11 } ], "metadata": {}