{ "metadata": { "name": "", "signature": "sha256:d32433ac9e074de6db43e894caa114e18a944d27ba24bb2e0ff517f6b5b57025" }, "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/day14_inplace_operators.ipynb?create=1) \n", "\n", "- [Link to this IPython notebook on Github](https://github.com/rasbt/One-Python-benchmark-per-day/blob/master/ipython_nbs/day14_inplace_operators.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": [ "import time\n", "print('Last updated: %s' %time.strftime('%d/%m/%Y'))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Last updated: 24/06/2014\n" ] } ], "prompt_number": 1 }, { "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 14 - One Python Benchmark per Day" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Python's and NumPy's in-place operator functions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Sections" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- [Introduction](#Introduction)\n", "- [`timeit` benchmarks](#timeit-benchmarks)\n", "- [Results](#Results)\n", "- [Conclusion](#Conclusion)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[[back to top](#Sections)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, we have to briefly talk about how the operators, e.g., for \"addition\" are implemented in Python. \n", "There are basically two different `add` methods for the `+` operator:\n", "\n", "- `a.__add__(b)`\n", "Returns the sum of `a` and `b` in `a + b`\n", "\n", "- `a.__iadd__(b)` \n", "Changes the value `a` in place, e.g., `a += b`\n", "\n", "However, the `__iadd__` method supports only mutable types. Thus, if we use the in-place operator `+=` on, for example, integers (integers are immutable), Python simulates the `__iadd__` method:\n", "\n", "`a += b` \n", "via \n", "`tmp = a + b; a = tmp`" ] }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "`__add__` and `__iadd__` examples" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The examples below show that the **`__add__`** method **returns** the sum, whereas the **`__iadd__`** method **modifies in-place**." ] }, { "cell_type": "code", "collapsed": false, "input": [ "a = 1\n", "b = 2\n", "\n", "print(a.__add__(b))\n", "print(a)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "3\n", "1\n" ] } ], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "a = [1]\n", "b = [2]\n", "\n", "print(a.__add__(b))\n", "print(a)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[1, 2]\n", "[1]\n" ] } ], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "a = [1]\n", "b = [2]\n", "\n", "print(a.__iadd__(b))\n", "print(a)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[1, 2]\n", "[1, 2]\n" ] } ], "prompt_number": 3 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "The advantage of `__iadd__` for mutable objects" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The advantage of the `__iadd__` method is that it doesn't create a \"temporary\" object when we use the `+=`-in-place operator on mutable objects, such as Python `list` objects, which leads to a significant performance increase. This also works for NumPy arrays as we will see in the benchmarks below." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "`timeit` benchmarks" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[[back to top](#Sections)]" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "import timeit\n", "\n", "py_int, py_list, np_ary = [[],[]], [[],[]], [[],[]]\n", "\n", "for i in range(100, 1100, 100):\n", "\n", " a = i\n", " b = i\n", " py_int[0].append(min(timeit.Timer('a = a + b', \n", " 'from __main__ import a, b').repeat(repeat=3, number=1000)))\n", "\n", " a = i\n", " py_int[1].append(min(timeit.Timer('a += b', \n", " 'from __main__ import a, b').repeat(repeat=3, number=1000)))\n", " \n", " a = np.ones((i,i))\n", " np_ary[0].append(min(timeit.Timer('a = a + b', \n", " 'from __main__ import a, b').repeat(repeat=3, number=1000)))\n", "\n", " a = np.ones((i,i))\n", " np_ary[1].append(min(timeit.Timer('a += b', \n", " 'from __main__ import a, b').repeat(repeat=3, number=1000)))\n", " \n", " a = list(range(i))\n", " b = list(range(i))\n", " py_list[0].append(min(timeit.Timer('a = a + b', \n", " 'from __main__ import a, b').repeat(repeat=3, number=1000)))\n", "\n", " a = list(range(i))\n", " py_list[1].append(min(timeit.Timer('a += b', \n", " 'from __main__ import a, b').repeat(repeat=3, number=1000)))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Preparing to plot the results" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[[back to top](#Sections)]" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import platform\n", "import multiprocessing\n", "\n", "def print_sysinfo():\n", " \n", " print('\\nPython version :', platform.python_version())\n", " print('compiler :', platform.python_compiler())\n", " \n", " print('\\nsystem :', platform.system())\n", " print('release :', platform.release())\n", " print('machine :', platform.machine())\n", " print('processor :', platform.processor())\n", " print('CPU count :', multiprocessing.cpu_count())\n", " print('interpreter:', platform.architecture()[0])\n", " print('\\n\\n')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "import matplotlib.pyplot as plt\n", "\n", "def plot():\n", "\n", " data = [py_int, py_list, np_ary]\n", " colors = ['g', 'b']\n", " x_vals = range(100, 1100, 100)\n", "\n", " f, ax = plt.subplots(1, 3, figsize=(15,5))\n", "\n", " for i in range(3):\n", " for j in range(2):\n", " ax[i].plot(x_vals, data[i][j], alpha=0.4, lw=3)\n", " ax[i].set_ylim([0, max(data[i][0][-1], data[i][1][-1])*1.5])\n", " ax[i].set_ylabel('time in milliseconds') \n", " ax[i].set_xlabel('sample size N') \n", " ax[i].legend(['a = a + x', 'a += x'])\n", " \n", "\n", " ax[0].set_title('Python integer addition\\n(where a and x are integers size N)')\n", " ax[1].set_title('Addition Python list objects\\n'\\\n", " '(where a and x are lists w. length N)')\n", " ax[2].set_title('NumPy: In-place operator for element-wise'\\\n", " 'array operation\\n(where a is a NxN-dim.NumPy array, x an integer size N)')\n", " \n", " plt.tight_layout()\n", " plt.show()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Results" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[[back to top](#Sections)]" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plot()\n", "print_sysinfo()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Python version : 3.4.1\n", "compiler : GCC 4.2.1 (Apple Inc. build 5577)\n", "\n", "system :" ] }, { "output_type": "stream", "stream": "stdout", "text": [ " Darwin\n", "release : 13.2.0\n", "machine : x86_64\n", "processor : i386\n", "CPU count : 4\n", "interpreter: 64bit\n", "\n", "\n", "\n" ] } ], "prompt_number": 8 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Conclusion" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[[back to top](#Sections)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since the `+=` in-place operator function on immutable objects (here: integers) is merely a workaround using the `__add__` method (`tmp = a + b; a = tmp`) as mentioned in the introduction above, we don't see any performance increase for Python `integer` types if we use the in-place operator: It is just syntactic sugar. \n", "However, it really pays off performance-wise if we use the in-place operator with on mutable types." ] } ], "metadata": {} } ] }