{ "metadata": { "name": "", "signature": "sha256:8845296976cab33005a3bb80b31d57f89fff309b8284088e7846fb1067a7aacb" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "[Sebastian Raschka](http://sebastianraschka.com) \n", "\n", "last updated: 05/27/2014\n", "\n", "- [Open in IPython nbviewer](http://nbviewer.ipython.org/github/rasbt/One-Python-benchmark-per-day/blob/master/ipython_nbs/day8_sqrt_and_exp.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/day8_sqrt_and_exp.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": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Day 8 - One Python Benchmark per Day" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Calculating square roots and exponents" ] }, { "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/118404394130788869227).\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For this benchmark, I only want to focus on the simplest approaches that don't require any additional libraries or modules that are not part of Python's in-built functions or the standard library. \n", "Why? Because in most simple Python scripts I often see people using the math module for those calculations and I was curious to see if we are not better off using ,e.g., the basic arithmetic operator $x^{0.5}$ and the in-built `pow` function for exponential functions." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "**-> [skip to the results](#Results)**\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Square root functions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- `math.sqrt(x)`\n", "\n", "- `x**0.5`\n", "\n", "\n", "\n", "**Note that we'll import the math.sqrt() and math.pow() functions into the global namespace to reduce the overhead:**" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import math\n", "from math import sqrt as math_sqrt\n", "\n", "x = 81\n", "%timeit math_sqrt(x)\n", "%timeit math.sqrt(x)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "10000000 loops, best of 3: 140 ns per loop\n", "10000000 loops, best of 3: 177 ns per loop" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "x = 988\n", "assert(math_sqrt(x) == x**0.5)\n", "print('both functions produce similar results')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "both functions produce similar results\n" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Power *n* functions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- `math.pow(x, n)`\n", "\n", "- `pow(x, n)`\n", "\n", "- `x**n`" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from math import pow as math_pow\n", "\n", "x = 3.3\n", "n = 4\n", "assert(math_pow(x, n) == pow(x, n) == x**n)\n", "print('All functions produce similar results')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "All functions produce similar results\n" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Timing square root" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import timeit\n", "\n", "test_sqrt = [12345.54321, 54756, 23423422, 999999999999999]\n", "\n", "timings_sqrt = {'math_module':[], 'arithmetic':[]}\n", "\n", "for x in test_sqrt:\n", " timings_sqrt['math_module'].append(min(timeit.Timer('math_sqrt(x)', \n", " 'from __main__ import x, math_sqrt')\n", " .repeat(repeat=100, number=1000)))\n", " timings_sqrt['arithmetic'].append(min(timeit.Timer('x**0.5', \n", " 'from __main__ import x')\n", " .repeat(repeat=100, number=1000)))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Timing power *n*" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import timeit\n", "\n", "test_pow = list(range(1,13))\n", "funcs_pow = ['math_module', 'inbuilt', 'arithmetic']\n", "\n", "timings_pow = {f:[] for f in funcs_pow}\n", "\n", "for n in test_pow:\n", " timings_pow['math_module'].append(min(timeit.Timer('math_pow(n, n)', \n", " 'from __main__ import n, math_pow')\n", " .repeat(repeat=100, number=1000)))\n", " timings_pow['inbuilt'].append(min(timeit.Timer('pow(n, n)', \n", " 'from __main__ import n')\n", " .repeat(repeat=100, number=1000)))\n", " timings_pow['arithmetic'].append(min(timeit.Timer('n**n', \n", " 'from __main__ import n')\n", " .repeat(repeat=100, number=1000))) " ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Setting up plots" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import platform\n", "import multiprocessing\n", "\n", "def print_sysinfo():\n", " print('\\nsystem :', platform.system())\n", " print('release :', platform.release())\n", " print('machine :', platform.machine())\n", " print('processor:', platform.processor())\n", " print('interpreter:', platform.architecture()[0])\n", " print('CPU count :', multiprocessing.cpu_count())\n", "\n", " print('\\nPython version', platform.python_version())\n", " print('compiler', platform.python_compiler())\n", " print('\\n\\n')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "%matplotlib inline" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "import matplotlib.pyplot as plt\n", "\n", "def plot_figures(): \n", " \n", " fig = plt.figure(figsize=(8,4))\n", " plt.plot(range(len(test_sqrt)), timings_sqrt['math_module'], \n", " alpha=0.5, label='math.sqrt(x)', marker='o', lw=2)\n", " plt.plot(range(len(test_sqrt)), timings_sqrt['arithmetic'], \n", " alpha=0.5, label='x**0.5', marker='o', lw=2)\n", " plt.legend(loc='upper left')\n", " plt.xticks(range(len(test_sqrt)), ['$\\sqrt{%s}$'%(x) for x in test_sqrt])\n", " plt.grid()\n", " plt.ylabel('time in milliseconds')\n", " \n", " plt.show()\n", " \n", " fig = plt.figure(figsize=(8,4))\n", " plt.plot(range(len(test_pow)), timings_pow['math_module'], \n", " alpha=0.5, label='math.pow(x, n)', marker='o', lw=2)\n", " plt.plot(range(len(test_pow)), timings_pow['inbuilt'], \n", " alpha=0.5, label='pow(x, n)', marker='o', lw=2)\n", " plt.plot(range(len(test_pow)), timings_pow['arithmetic'], \n", " alpha=0.5, label='x**n', marker='o', lw=2)\n", " plt.legend(loc='upper left')\n", " plt.xticks(range(len(test_pow)), ['$%s^{%s}$'%(x, x) for x in test_pow])\n", " plt.grid()\n", " plt.ylabel('time in milliseconds')\n", " " ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Results" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print_sysinfo()\n", "plot_figures()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", "system : Darwin\n", "release : 13.1.0\n", "machine : x86_64\n", "processor: i386\n", "interpreter:" ] }, { "output_type": "stream", "stream": "stdout", "text": [ " 64bit\n", "CPU count : 4\n", "\n", "Python version 3.4.0\n", "compiler GCC 4.2.1 (Apple Inc. build 5577)\n", "\n", "\n", "\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "
" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Conclusion" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Despite the **additional name-lookup** for the `math`-module functions, those approaches are still faster than the in-built `**` operator and `pow` function.\n", "\n", "**Why is the `math` module more efficient?** \n", "The `math` module uses the C implementations of the square root and power functions which explains the better performance. \n", "And `pow()` is really the same as the `**` operator but comes with an additional function call overhead.\n", "\n", "However, the math module comes with the disadvantage that it can't handle complex numbers. In those cases we'd need to use the `cmath` module.\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "(81+2j)**0.5" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 1, "text": [ "(9.000685740426075+0.11110264582492375j)" ] } ], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "import cmath\n", "cmath.sqrt(81+2j)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 3, "text": [ "(9.000685740426075+0.11110264582492377j)" ] } ], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "import math\n", "math.sqrt(81+2j)\n" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "TypeError", "evalue": "can't convert complex to float", "output_type": "pyerr", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mmath\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mmath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msqrt\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m81\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;36m2j\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mTypeError\u001b[0m: can't convert complex to float" ] } ], "prompt_number": 4 } ], "metadata": {} } ] }