{ "metadata": { "name": "", "signature": "sha256:0a9de244599ba4a0f5e8a59d2e18e4a3172ae838e93164741aa2c233a91e21eb" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "[Sebastian Raschka](http://sebastianraschka.com) \n", "\n", "- [Open in IPython nbviewer](http://nbviewer.ipython.org/github/rasbt/One-Python-benchmark-per-day/blob/master/ipython_nbs/day18_sckit_preprocessing.ipynb) \n", "\n", "- [Link to this IPython notebook on Github](https://github.com/rasbt/One-Python-benchmark-per-day/blob/master/ipython_nbs/day18_sckit_preprocessing.ipynb) \n", "\n", "- [Link to the GitHub Repository One-Python-benchmark-per-day](https://github.com/rasbt/One-Python-benchmark-per-day)\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%load_ext watermark" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "%watermark -d -v -u -t -z -p numpy" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Last updated: 05/07/2014 18:39:56 EDT\n", "\n", "CPython 3.4.1\n", "IPython 2.1.0\n", "\n", "numpy 1.8.1\n" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "[More information](http://nbviewer.ipython.org/github/rasbt/python_reference/blob/master/ipython_magic/watermark.ipynb) about the `watermark` magic command extension." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "I would be happy to hear your comments and suggestions. \n", "Please feel free to drop me a note via\n", "[twitter](https://twitter.com/rasbt), [email](mailto:bluewoodtree@gmail.com), or [google+](https://plus.google.com/+SebastianRaschka).\n", "
" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Day 18 - One Python Benchmark per Day" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "The scikit-learn preprocessing module for feature scaling" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Normalization via Z-score standardization and Min-Max scaling are important data pre-processing steps for many machine learning and pattern classification tasks, and various other data analyses. \n", "\n", "The popular open-source [`scikit-learn`](http://scikit-learn.org/stable/) machine learning library provides handy feature scaling methods that make this task very convenient. \n", "\n", "In one of my [recent articles](http://sebastianraschka.com/Articles/2014_about_feature_scaling.html), I discussed the importance of feature scaling in more detail, but now I wanted to see which approach is actually the faster one, which is especially interesting for scaling of large datesets: **A NumPy bottom-up approach vs. the scikit-preprocessing tools...**\n", "\n" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Min-Max scaling" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using the following equation for Min-Max scaling: \\begin{equation} X_{norm} = \\frac{X - X_{min}}{X_{max}-X_{min}} \\end{equation}\n", "\n", "will scale our data to a range between 0 and 1.\n", "\n", "\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "\n", "np.random.seed(123)\n", "\n", "# A random 2D-array ranging from 0-100\n", "\n", "X = np.random.rand(100,2)\n", "X.dtype = np.float64\n", "X *= 100 " ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 44 }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Min-Max scaling - Bottom-up via NumPy" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def numpy_minmax(X):\n", " xmin = X.min()\n", " return (X - xmin) / (X.max() - xmin)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 54 }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Min-Max scaling - scikit-learn preprocessing" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from sklearn import preprocessing\n", "\n", "def sci_minmax(X):\n", " minmax_scale = preprocessing.MinMaxScaler(feature_range=(0, 1), copy=True)\n", " return minmax_scale.fit_transform(X)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 51 }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Min-Max scaling - Visualization" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 52 }, { "cell_type": "code", "collapsed": false, "input": [ "from matplotlib import pyplot as plt\n", "\n", "sci_mm = sci_minmax(X)\n", "numpy_mm = numpy_minmax(X)\n", "\n", "plt.scatter(numpy_mm[:,0], numpy_mm[:,1],\n", " color='g',\n", " label='NumPy bottom-up',\n", " alpha=0.5,\n", " marker='o'\n", " )\n", "\n", "plt.scatter(sci_mm[:,0], sci_mm[:,1],\n", " color='b',\n", " label='scikit-learn',\n", " alpha=0.5,\n", " marker='x'\n", " )\n", "\n", "plt.legend()\n", "plt.grid()\n", "\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 53 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "Z-score Standardization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Bechmarking via `timeit`" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import timeit\n", "from numpy import append as np_append\n", "from numpy import concatenate as np_concatenate\n", "from numpy import hstack as np_hstack\n", "from numpy import vstack as np_vstack\n", "\n", "funcs = ('np_append', 'np_concatenate', 'np_hstack', 'np_linalg_norm')\n", "\n", "t_append, t_hconc, t_vconc, t_hstack, t_vstack = [], [], [], [], []\n", "\n", "orders_5 = [10**i for i in range(1, 5)]\n", "for n in orders_5:\n", " \n", " nxn_dim = np.random.randn(n,n)\n", "\n", " t_vconc.append(min(timeit.Timer('np_concatenate((nxn_dim, nxn_dim))', \n", " 'from __main__ import nxn_dim, np_concatenate').repeat(repeat=5, number=1)))\n", " t_vstack.append(min(timeit.Timer('np_vstack((nxn_dim, nxn_dim))', \n", " 'from __main__ import nxn_dim, np_vstack').repeat(repeat=5, number=1))) \n", " \n", "orders_6 = [10**i for i in range(1, 6)]\n", "for n in orders_6:\n", " \n", " nx1_dim = np.random.randn(n,1)\n", " \n", " t_append.append(min(timeit.Timer('np_append(nx1_dim, nx1_dim)', \n", " 'from __main__ import nx1_dim, np_append').repeat(repeat=5, number=1)))\n", " t_hconc.append(min(timeit.Timer('np_concatenate((nx1_dim, nx1_dim), axis=1)', \n", " 'from __main__ import nx1_dim, np_concatenate').repeat(repeat=5, number=1)))\n", " t_hstack.append(min(timeit.Timer('np_hstack((nx1_dim, nx1_dim))', \n", " 'from __main__ import nx1_dim, np_hstack').repeat(repeat=5, number=1)))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 22 }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 23 }, { "cell_type": "code", "collapsed": false, "input": [ "from matplotlib import pyplot as plt\n", "\n", "def plot():\n", " \n", " def settings():\n", " plt.xlim([min(orders_6) / 10, max(orders_6)* 10])\n", " plt.legend(loc=2, fontsize=14)\n", " plt.grid()\n", " plt.xticks(fontsize=16)\n", " plt.yticks(fontsize=16)\n", " plt.xscale('log')\n", " plt.yscale('log')\n", " plt.legend(loc=2, fontsize=14)\n", "\n", " fig = plt.figure(figsize=(15,8))\n", "\n", " plt.subplot(1,2,1)\n", " plt.plot(orders_5, t_vconc, alpha=0.7, label='np.concatenate((a,b))')\n", " plt.plot(orders_5, t_vstack, alpha=0.7, label='np.vstack((a,b))') \n", " plt.xlabel(r'sample size $n$ ($n\\times \\, n$ NumPy array)', fontsize=14)\n", " plt.ylabel('time per computation in seconds', fontsize=14)\n", " plt.title('Vertical stacking of NumPy arrays (row wise)', fontsize=14)\n", " settings()\n", " \n", " \n", " plt.subplot(1,2,2)\n", " plt.plot(orders_6, t_hconc, alpha=0.7, label='np.concatenate((a,b), axis=1)')\n", " plt.plot(orders_6, t_hstack, alpha=0.7, label='np.hstack((a,b))') \n", " plt.plot(orders_6, t_append, alpha=0.7, label='np.append(a,b)') \n", " plt.xlabel(r'sample size $n$ ($n\\times \\, 1$ NumPy array)', fontsize=14)\n", " plt.ylabel('time per computation in seconds', fontsize=14)\n", " plt.title('Horizontal stacking of NumPy arrays (column wise)', fontsize=14)\n", " settings()\n", "\n", " plt.tight_layout()\n", " plt.show()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 24 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Results" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plot()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAABDEAAAI6CAYAAAA+HdN0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd8U9X7wPFPyigFSpllyCjQgoBsBUSBooCDLfJVBClT\n/KJ8lSU/QKQVEZQhiooKCg62bBBBRqkICLI3LbQUQYbsTaHn98dJQpJmdpC2ed6vV1+Qc2/uPXmS\n3PPk3HPPBSGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEII\nIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCAOFAMlA4HbeZDLyQjttLD5HAXifLw0n/OKRFJHAGXaeu\n3q2KSKVXgWhvVyIV0vP7Wxw4B5RIp+0JIdImHhjg7Uq4SXKJtItEcomsLr1ziW7A1XTcnrel5zHN\nHzgB1Eqn7QnhM5YCaxwsq4JuhJqlYfsJwECbslxAcBq2aU9aEo9wMiYBiMR54pERcUitR9AxaIOu\nUx4H6yUDt4HyNuUzgGUZVTkbCcZ6JAPX0THu/YD2nZnlRDesafm+ekswkDsdt/cZ8EU6bk+I7GoG\n9o/dj6KPsWXTYR9FgIB02I67wkl9my65RNpILpH1ZUQu0Y3s1YmR3se0AcCKdNxetuLn7QqITGsa\n0BQoZ2dZT/RB3lEnhzOmHyTKzrIk4GwqtpnRDA94f5kpDqHGf5ei63TLybp3gdE2ZQr773VGUEAU\n+kx7DWAx8DXQ8QHt3ySnnbL0/CHuqdZADpx/X71ZP2fOAnfScXs/oM8A5kvHbQqRHWXksdt0vDkP\n3MygfTjzoNt0b+1XconUkVzCPndyCV+X3se0WUBzUnbqCaQTQzi2Aj3sr7tNeS70cLLvjI+rGte9\nYlx/FnrYtskMdO/5EPSwqBPAenTnyDh0T/c947rhpDxb0QBYB1wDLgFrgZLGZc8CvwMX0AeOX4GH\nPXyd1Y3bvIzuDd5lrEeIcb+gh6AnW7xmd/ZbCpgJ/Ivuyd9p3K49ZYFDwHR0AxGOdRy6Gev2FLAP\nHYt1xjpaGop+D64Y6/oeutfcmeroBumG8bVMBwoYl0UCC43/t3yfHPkc+A9Qx6LMgHXiNoOUZ1Mi\nsT6bZFpnCPAP+n0fgz5ejUInQP+QciQP6DidBY4CI4BYoC3685YM1LVZvzf6/bWXLIDr9zrEuN2X\n0e/JDaCPzWv4G0g0rt8F2Mb978s89GcFdJzi7LyuMOM+TEMK+wBH0A3lOWOdcjioP0AnUsbcUf2c\nfR4eNtbDdGYvL/qM2UqL7fZCx9ye1Dzf9uzne+gO1Fvoz8D3Nvt4Bx3DG8AeoLPN8r/QsW/joI5C\nCM2TH9yNgT/Rx6TTwER0rmASDXwJjEcfn383lidw/3gXyf2z35Z/I43L/dDH9BPo7/8erL/HIdw/\nXvyGbnf3c/+scQhpa9NdkVxCcglfzCUAItBxv4X+/s+wWFYWWGSs5xVgAfCQk31EknJ0UTesR2uY\n1olAH0OuoT+nuYB+6GPEv+jfGJYSgOHoDqnLxvUGOalLfnRHYH2LshPAQYvHzYz7N73vCVjH3VWM\nuwMHjMsPA29j/Tk/jX6fX3ZST58lnRjCkXvoHwjdsP5CtUYPl5qO7kyIQScTjwFPo7/0S2ye0wQ9\nlPAZdOP5AvpgbOrpLol9NdEdHkeAhugDySzuHyzyopOlx4z7uIw+wOZKsSXHZgEnjduoiU6YbqEb\nig7Gdaoa6/mWm/vNB2xAH7zbAtW4n4jZqgL8ASxHH8wcNe7+wP+h34/HgYLAVxbLX0YnGkPRDf8R\noD/Oz1zkA1ahG5bHgPboOJsSrHHcH0Lp7H0y2YpuoD52so67Z1Mao5OFJsDr6B+nv6KPWQ3Rjdg4\nXF8reBsdu+PAaqCHzfIe6LPzdx08393P2Bh04lUFfdZGcf9z3wL93cD4vBHoszutgKLAbOMyhR4B\nZdtx2AOduO5CD+X+HP15qmTc7kqca4RuBG3Z1s/V5+EQukFtanzcEB2PhtxvS8LR31l70vr8Dujk\n4L/os3qt0D+cTEajY9cX/T6MQScrz9tsZ6vxtQshnHOnI+Mh9DFoO/p43BP9Y2eMzXpd0Me4J7k/\nH4JlezAO3c6Y/iLQx2VTh8db6B8cg9HHrUXoH8Y1bfYzGpiEPsZuA+agj21padPdIbmE5BK+mEv0\nQX9+vjXW8Vlgt3GZH/r3QDF0294U3dGy2MV+3BGC/j3yPPo3RUf0CdVa6I6FXujvWTub5/U31q82\n8BH6M9bAwT6uoU98hBsfhwJB6O+j6WRtOLCJ+++75efSVYx7o49X76I7tAaiO6v62tRDchYhUiEU\n3Wvb3KJsBfevz3qflMPKChmf86jx8Qx0L7Htgdre5DfhWJ81mIlulN2VD30gecKizNV1rJdxPMGU\nbX1c7beh8XFvdGPu6HmR6F7k+uie2aEu9tvN+DjMYp1XsB6OuRl9psvSKuCYk3r3Rp+ZsBxa38S4\nrwrGxy8aH7tiinNFdGP/jLF8BtY997aPwf7Zk+NYJ9Db0I2vpXise7wtH+fkftz6GMs6oM+C+Bsf\nm+Z2qeroRdlh+16HGLfR32a9Gdj/3NsyjU4wnUEpgb58wtTznwOdGJsatRfQ71l+N+sbaNz+U27U\nz53Pw2zuJ7wfoD9z8dxPAhLRn01HPH2+5fd3ALojxN6ZrnzoM1dP2JRPIuX1pJ9x/8yoEMK+Geiz\nkFdt/q5jPSfGaPQZREsR6PbJNO9BNPqHky1Hk+BVBi4C/7MoO4lO9i2tB340/j/EWC/LuQtKGctM\nx+twPGvTJZfQJJeQXMJRLvE38KGD5zRHv0bL+XPKozvYTNvphv1RFpbsrXPDWCeT+eg4WeYH64HJ\nFo8T0L8rLB1Bj85wZAy60wt0x8gvxu2aRkZsBIZZrG95THMV40RSjhZ9Gz2CzNIAnH//fJaMxBDO\nxKHPAph6nEuhe4K/NT6ui+7ltkxwEtG9kBUttrMPnQx5qhbOf2xURJ/9iEMnEKfRn+kyHuxjIrrH\nei36QFTZjec42q/pQF0b3dN7wck2HkIPeR1LyjNW9tzGepj9P+hrIwsaH1dG99Za2orzM2lVjPW8\nblG2Gc8bY0tHgano15WW638PYH2W5Qz6c4RNWTGLxwZ0Qn0V3cB9ju5l/8a4fCm6UTcloj3QZ/IP\nOKmHq/fa5C87z7X3ua+DPjORgE5OTWc1TNs7jT6TZvrOPYvuGDQ1vKvRSVk88BM6aXaWhJiG815z\no37ufB6iuX9WIhzdmJvKQoHSOJ+5PC3Pn4f+URSP/s6+yP3rg6sal63C+nj0OveTaJMr6LMpQgjn\nNqBHFVj+2XZSVgG22JT9gf5uhlqUbXdznwXRx+o56A5H0MexkqQ8qbGRlG3VHov//2P819XklpJL\nSC4huYTnuUQw+nfBWgfPqQKc4v4lMBj3d4rUfy5MErHu2DiL7pCwHAlzBuvvvsL6+ICxLsVwbAO6\nMzMnKXOWAPQJ22gHz3UW42LofOcbrHOWMUjO4rbs2okxAn1m4B56CJ5IvW/Rw7EKoXtDz6MPnKAP\n9MtJmeSEYX3280Ya9u+s8VqOvrTlNaAeusG/i2cTH0WhD6aL0T3ie0g5BC81+3XV6P6LbuQ7cT95\ncMZ2iKKpUU7rd9hRPdMygdb76Aa7s53tJNvZp70zDPZer20jrrB+/QqYgP4MlkU3Fv9nUYck9HDP\nHuizEq9yv0POEXc/Y9dJyfZzbxpyew09tPpRdGKBzfamAS+hG8ge6CHTl43LrqGTl/+gG/Gh6NEJ\njobnmp5nLzmx97109XnYgB4WWRHdiWlq0Juiz7wdRScFjqTl+X+jE+w+6EZ9AvqHUV7ufw5aYX0s\nqorueLVUAH2WVwhPzEX/UNuJ/qHxnHer80DcRJ8BtPw7abOOwvVxQ2H/GGkrJ/qM6gngTTfWN5Cy\njbFsJ9xtJyWXkFxCconU5xKp4ehz4e77au89tHcpj+3n2tV7b2sjesTNY+iTtuu4n7M0NO7TttPP\nxFmMTfvsg3XOUs34Z6kAekSHsJFdOzFWo7/QMTy42YyzqwXooYZduH/Nn+layx3oa+ASSZno2Dvz\na+kOzicQAp0s2g5dMymC/kHzIfqgchj9RXc0qZIzceghZ63QDVEvizpiU0939rsDfZ1iESf7vIWe\nlOwi+ixKWntZD6EbRkv1cP75P4CejMuyUTLNT3DQ7jPccxY9gdso7g+3tFxm20jWslPP1H5vz6M/\nf6cdLDfddecN9Oue42Rb6fkZAz3cswj6LN1G9FmD4nbWM11b/F/0Z/I7m+X30D/+h6E/Z/mAlg72\neQ19NsL2bI897nweTPNaDEd/b/7l/pmK5jiez8Ikrc+/jR7OOQCdVFQz1nG/cVkIKY9FJ2y2UQ7H\nk48K4chr6CSzNrqNmIv37nKRmRxEXw5mGYsn0e3nUQ+3NQl9rHoR6zkdrqA7N5+0Wf9JUg69dia1\nbbq7JJe4T3KJ+7JrLnEW3anp6JarB9EjNcpZlFUwljkatXKOlK/F1XwlGeka+mTJa+j3bAd61E0Z\ndOea5XwY9jiK8Rn0MS2UlDmL7aUj5dDvsbCRXTsx/sT1TMrCPTfRQ+Ci0Acfy97mL9AN5lx0I1cB\nfTD7Gte9tQnoXs1S6AmJ7BmHThi/Rn/5K6OTgjLoBvtf9IElFH0W9yucH0xs5TG+hiboHz/1sU6K\njqMbwFbooV/53NzvLPTBfYlxexXQSUa4xToG9I+u1uge7rQmH5+iR8p0R4+EeQfXicdMdA//D+jO\nqMboWC8g7dffTUDH13ZSpXXo97Q7On7voJMd2x8D9h67U+bKEXSj/zH6jJ+zzrb0+IxZSkS/5/3Q\nn4mW6OTM1j10sjEGPfrA8pKqlujJqmqjG7bO6OtCnSWKv5MyKbXH3c/DBnSnpqnDIQEdpxdwfilJ\nWp/fDT1pYHX0dbU90D8OYtHv43jjn+mzVQt9OUlvm+08iu7gFsITly3+XxD9I0dOkuj5E0oZ/62C\nPkaNQf+YN8214OhYbVnW3fjXG912mCb4NM2zMA49sefL6NFc76Pb1/Ee1DW1bborkktILuGrucRo\n9DwOb6O/l7W4PyfEb+gRSTPRIy8fNf5/O45PWKxHz+EyDD0Kpyf3J8bNCO6899HonMV0YvwW+ndm\nF1LmLJbbaoXzGI9Ef27fRv++eQR9ycn/2WyzHpKz2JVdOzFE+pqGTtr+wHoCr3/QZ1CT0RPf7ENf\nO3gLfYAFxzNIv4fujDiK7pHEYn2T3ehOkYfR19xuQQ/LumPc50vozo296ITpXYv9uuOe8XXNQJ99\nWIjuVTUdgE+iDzKj0b3xk93c7w10I/U3euKpvcbtmCa1sozJLfSB7gp6BFGQxTqW7MXQsmwuuhEb\ni+4propuJJ3F4yZ60qwC6OFwi9Hvse2s26lJ1K+jO77y2Dx/tbF8NHpIdll08mu5jr3PjLtl7vgO\nPeTS1fBPdz9jjt4b2/Jz6Anv2qGT2xE4nvXddLuw6Tbll9CXyP2GbggHoBt5ZxPgzkZ/xlzVz93P\nQzT6jGK0Rdl6O2WOpPb5F9GvNQb9frRHd3wcNy4fgZ7waxD6WLTauI5lEv0Y+vUtdaOeQtiaiG6z\nFuN4Esfswtnx1bL8FPrSmtro0ZPfon98D7NZ31Ub1hjdXkQbt2n6M02w+Bm6I+Nj9Pe/Lfr7bzkJ\noKv2ILVtuiuSS0gu4Ux2ziW+Qo9G6Y1+bSuxnu+irbG+69GdKKdI2SFlWe9D6JEjr6F/AzyNHsGS\nUe+rO+tEo38vR9uU2ctZLLd1Eecx/hb9HXkVPfFxDPpErWXOUhzdAeRspI/wstLoL/Vm9EHbcuZr\nW2WAn9FfwMvonl5Hky+tx/o+4kL4kkXcn79E3DcE3VBmZvXR126WTodt5UKPTGvuakUfMBl9xlRk\nPxmVR9jzDDoZD3S1ohDZgOQS9kkuITLaQFLeYU1kMuHcn0n3VxwnH3nRQ4f3oDsn2hj/H2dcZks6\nMYSvCEAf7Kqhh6UNQya2tZUPHZ+T6J7+zCg3OtlYjT4jll4sL9/wVcXRZ4RKeLsiIkOEk355xKvo\nUQU7cXysiEVP2iZEdiK5hGuSS4gHwR89p5c35wQRbrC8hqgXjpOPt9DXkFnefiYE3ctoe29l0MN8\n5MArfEEe9JC1f9HDL3dy/z7WQpuBHnI7l8x7KV039DHuL/St84QQ7smoPAL08bW8xePH0ZdB5rO/\nuhBZluQSrs1AcgkhhB3Oko+16IllbEVjfV1SJLr36ib6zFsieuIpIYQQQmRv6ZFHWCqEnuNgL/pH\nXTR6EkEhhBBCCMB58nEamGKn/Ev0DM5CCCGE8G2SRwghhBDZWGrvUewthdCzvdq6YFzmkVKlSqlT\np06luVJCCCFENnIUfSvA7Chd8wh7JLcQQgghrKR7XpFZr+V6IE6dOoVSKkP+Ro4cmWHPcbaeo2X2\nym3LPH2cFeLlap2sGK/UbjczxysrfrZcrZeWWEm80hYvOXY5L3P1GKjo7fY5K8uo3EKO/VkjXnLs\n9168ssOxPyPjJXl++sUrs8UqPeKVkccuMiCvyJHeG0wHdYDWwCT0rc8svQkkkPJ2My+iJ90a7+G+\nIiMjIz2voZtCQkIy7DnO1nO0zF65bZmzx9HR0YSHh7tVv9TIqHi5Wicrxis1sXL3ed6IV1b9bLla\nLy2xslcm8XK/TI5dzsucPY6KigKIclW/TOxB5hH2ZFhuIcd+z3grXnLs92w9OfZ7tl5GHfuzarzk\n2OXZ87xx7MqIvMLgepUHrhfwDXq28ESbZWvRtw1qZFMeDSigqYf7UiNHjiQ8PDxDP4jZRbdu3Zgx\nY4a3q5FlSLzcJ7HyjMTLMxIv90RHRxMdHW1KNjJjfuCuB5lH2KOMZ56EC/Ld9IzEyzMSL89IvNwn\nsfKMwWCAdM4rstrlJEuBBljf6iwEPUv40tRsMDIyUjow3FSrltyq2BMSL/dJrDwj8fKMxMs94eHh\nZOToxEwi3fMIkXry3fSMxMszEi/PSLzcJ7Hyvsx0puVF479PA32Avuj7VJ8FYozL8gK70bdOfddY\nNgp9r/YawA0P9ylnS4QQQggLGXHG5AHxRh5hj+QWQgghhFFG5BWZKUlJtvi/4n7dooGnLJaVAT4B\nmhvXWQO8Tcoho+6QREMIIYSwkIU7MbyRR9gjuYUQQghhlBF5RWa6xaq7l7ac4P7ZljQzXU5ie0lJ\n4cKFuXjR3l3YhBAAhQoV4sKFC+myrYyeICm7kXh5RuLlHtOcGFmYV/IIeyS3EEK4kp55VHqQttJ9\nEiv3ZGRekRXPtKQnh2dLDAYDciZFCMfS8zsijYFnJF6ekXh5JguPxMgsJLcQQriU2Y4H0la6T2Ll\nmex+OYk3SKIhRCrJd0SI7Ek6MdJMcgshhEtyPBC+Qu5OIoQQQgghhBBCCJ/l850YkZGRWf0aYCGy\nPPkOekbi5RmJl3uio6N94RarQggh7JC20n0SK+/LTBN7eoUkbEIIIQTmiSijoqK8XRUhhBBCCId8\nfiSGEN7WrFkzvv/+e6uy33//nbCwMJKTkx08y7UZM2YQGBjodJ3PPvuM9u3bW5WdOXOGYsWKcfr0\n6VTv21MyOZJnJF6ekXgJIXxRZssvHpSEhAT8/PzYsWOHV/a/e/duypQpw61bt7yy/9SSttJ9Eivv\nk04MkeVFR0fj5+fntdtUdevWjdatW6fquWvWrCEuLo5XX33Vqnzo0KEMGTIEP7+M/Yq+9tprbNq0\niW3btpnLihcvTqdOnRg1alSG7lsIIYTIzCS/SD17+cWDUrZsWU6fPk3NmjUzZPujR4/miSeeIF++\nfHbjWLNmTWrXrs3kyZMzZP9CCOnEkDkxspGsOMPz5MmTefXVV60awV27drFjxw5efvnlDN9/njx5\n6NixI1988YVVedeuXfnhhx+4fv16htcB5NpCT0m8PCPxco/MiSGEfZJfeM5RfvEg+Pn5ERwcTI4c\nOTJk+3fu3OHFF1+kf//+Dtfp2rUrU6ZMyZD9ZxRpK90nsRLephxxtiyzatKkierbt68aOnSoKlq0\nqAoODlaDBg1SycnJSimlypUrpyIjI1Xnzp1V/vz5VYkSJdT48eNdbnfFihWqXr16KiAgQBUpUkS1\nbt1a3bp1Syml1IULF1TXrl1VoUKFVEBAgGrWrJnav3+/+bnTp09X+fPnV2vXrlXVqlVT+fLlU02b\nNlXx8fFu7+PHH39Ujz76qAoMDFTBwcGqY8eO6uTJk0oppeLj45XBYLD66969u1JKqeTkZPXRRx+p\nihUrqoCAAFW9enX1008/mfdpeu6CBQtUs2bNVN68eVXVqlXVb7/9Zl7n3r17qkePHqp8+fIqICBA\nhYWFqY8//tgc05EjR6bY/4YNG5RSSv3999/qpZdeUoUKFVKFChVSLVu2VLGxseZtX7p0SeXKlUtt\n3brVKhaDBw9Wzz//vFVZXFycatOmjSpRooTKly+fqlOnjlq+fLnT980U+2XLlqmwsDCVJ08e1bRp\nU3Xs2DGr9VavXq3y58+v7t69a1VeqlQpNWvWLIfbT8/vyPr169NtW75A4uUZiZdngKz3iy1zUSNH\njrT7uSMb5hZKSX4h+YVn+YUrQ4YMUZUrV1YBAQEqJCREvfPOO+b3TCmlmjVrppo1a2Z+fPXqVRUa\nGqrefPNNpdT9+G/fvl0ppdSdO3dUv379VKlSpZS/v78qU6aM+r//+z+P6mTP/PnzlcFgsLvs+vXr\nKleuXGrTpk0On5/ZjgfSVrpPYuWe9evXq5EjR0pekQEcBt3ZssyqSZMmKigoSI0cOVLFxsaqefPm\nqZw5c6rZs2crpXSSUaBAAfXhhx+q2NhY9fXXX6vcuXOrhQsXOtzmypUrVc6cOdWIESPUwYMH1b59\n+9Qnn3yibty4oZRSqk2bNqpKlSrq999/V3v37lVt2rRRZcqUUTdv3lRK6YYuV65cqnnz5mrbtm1q\nz549qnbt2uqZZ55xex/fffedWrlypYqPj1dbt25VTZs2VY0bN1ZK6SRg4cKFymAwqIMHD6ozZ86o\nK1euKKWUGjZsmHr44YfVqlWrVEJCgpo1a5bKly+fWrFihVLqfiP38MMPq+XLl6u4uDgVERGhihQp\noq5du6aUUiopKUm999576q+//lLHjx9X8+bNUwULFlTffvutUkqpa9euqZdeekm1aNFCnTlzRp05\nc0bduXNHXb9+XYWFhanu3burvXv3qsOHD6tevXqpcuXKmV/XypUrVe7cudWdO3esYl6/fn01cuRI\nq7Ldu3err7/+Wu3bt08dPXpUjR49WuXOnVsdOnTI4Xtniv1jjz2mNm3apHbu3KkaN26satWqZbXe\nhQsXlMFgUFu2bLEqb9eunerTp4/D7WfF74gQwjUk2Ugrp7HNalzlFkpJfiH5hWf5hSujRo1SmzZt\nUsePH1e//PKLKlu2rBoxYoR5+alTp1TRokXVuHHjlFJKde/eXT3yyCPmjg7bTozx48erMmXKqN9/\n/12dOHFCbdq0Sc2YMcO8vT59+qj8+fM7/Ttx4kSKejrrxFBKqVq1aqkxY8Y4XJ4VjwdCpAaSV6Q7\np8F2R6tW6fuXFk2aNFENGza0KmvevLnq3bu3UkonGS1atLBa3qtXL/Xkk0863GbDhg1Vp06d7C47\ncuSIMhgM6vfffzeXXb58WQUFBalp06YppXRDZzAY1JEjR8zrzJw5U/n7+7u1D3sOHjyoDAaD+WzJ\n+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\nkiRJlfb/7BHJ4qy9Cz0AAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 25 }, { "cell_type": "code", "collapsed": false, "input": [ "%watermark" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "05/07/2014 19:18:43\n", "\n", "CPython 3.4.1\n", "IPython 2.1.0\n", "\n", "compiler : GCC 4.2.1 (Apple Inc. build 5577)\n", "system : Darwin\n", "release : 13.2.0\n", "machine : x86_64\n", "processor : i386\n", "CPU cores : 2\n", "interpreter: 64bit\n" ] } ], "prompt_number": 26 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The plots above are indicating that the `concatenate` functions are indeed faster to call for small sample sizes. However, large arrays are the ones where performance really matters, and we can see that the other functions are catching up performance-wise with increasing array sizes." ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }