diff --git a/.ipynb_checkpoints/timeit_tests-checkpoint.ipynb b/.ipynb_checkpoints/timeit_tests-checkpoint.ipynb index baf4bed..12ba838 100644 --- a/.ipynb_checkpoints/timeit_tests-checkpoint.ipynb +++ b/.ipynb_checkpoints/timeit_tests-checkpoint.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:ab74fdc9e8ae58388d1fc428599abc86a3d03938d0f51769cef38ab4028d516a" + "signature": "sha256:d5895f75b2ac58db150d7b521682366a447ffb2fb0b7db7e551edd40e6d1ab10" }, "nbformat": 3, "nbformat_minor": 0, @@ -66,7 +66,8 @@ " - [Adding elements to a dictionary](#adding_dict_elements)\n", "- [Comprehensions vs. for-loops](#comprehensions)\n", "- [Copying files by searching directory trees](#find_copy)\n", - "- [Returning column vectors slicing through a numpy array](#row_vectors)" + "- [Returning column vectors slicing through a numpy array](#row_vectors)\n", + "- [Speed of numpy functions vs Python built-ins and std. lib.](#numpy)" ] }, { @@ -1691,6 +1692,116 @@ ], "prompt_number": 91 }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Speed of numpy functions vs Python built-ins and std. lib." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import numpy as np\n", + "import timeit\n", + "\n", + "samples = list(range(1000000))\n", + "\n", + "%timeit(sum(samples))\n", + "%timeit(np.sum(samples))" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "100 loops, best of 3: 18.3 ms per loop\n", + "10 loops, best of 3: 136 ms per loop" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%timeit(list(range(1000000)))\n", + "%timeit(np.arange(1000000))\n", + "\n", + "# note that in Python range() is implemented as xrange()\n", + "# with lazy evaluation (generator)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "10 loops, best of 3: 82.6 ms per loop\n", + "100 loops, best of 3: 5.35 ms per loop" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import statistics\n", + "\n", + "%timeit(statistics.mean(samples))\n", + "%timeit(np.mean(samples))" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "1 loops, best of 3: 1.14 s per loop\n", + "10 loops, best of 3: 141 ms per loop" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n" + ] + } + ], + "prompt_number": 14 + }, { "cell_type": "code", "collapsed": false, diff --git a/benchmarks/timeit_tests.ipynb b/benchmarks/timeit_tests.ipynb index baf4bed..12ba838 100644 --- a/benchmarks/timeit_tests.ipynb +++ b/benchmarks/timeit_tests.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:ab74fdc9e8ae58388d1fc428599abc86a3d03938d0f51769cef38ab4028d516a" + "signature": "sha256:d5895f75b2ac58db150d7b521682366a447ffb2fb0b7db7e551edd40e6d1ab10" }, "nbformat": 3, "nbformat_minor": 0, @@ -66,7 +66,8 @@ " - [Adding elements to a dictionary](#adding_dict_elements)\n", "- [Comprehensions vs. for-loops](#comprehensions)\n", "- [Copying files by searching directory trees](#find_copy)\n", - "- [Returning column vectors slicing through a numpy array](#row_vectors)" + "- [Returning column vectors slicing through a numpy array](#row_vectors)\n", + "- [Speed of numpy functions vs Python built-ins and std. lib.](#numpy)" ] }, { @@ -1691,6 +1692,116 @@ ], "prompt_number": 91 }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Speed of numpy functions vs Python built-ins and std. lib." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import numpy as np\n", + "import timeit\n", + "\n", + "samples = list(range(1000000))\n", + "\n", + "%timeit(sum(samples))\n", + "%timeit(np.sum(samples))" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "100 loops, best of 3: 18.3 ms per loop\n", + "10 loops, best of 3: 136 ms per loop" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n" + ] + } + ], + "prompt_number": 6 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%timeit(list(range(1000000)))\n", + "%timeit(np.arange(1000000))\n", + "\n", + "# note that in Python range() is implemented as xrange()\n", + "# with lazy evaluation (generator)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "10 loops, best of 3: 82.6 ms per loop\n", + "100 loops, best of 3: 5.35 ms per loop" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n" + ] + } + ], + "prompt_number": 11 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import statistics\n", + "\n", + "%timeit(statistics.mean(samples))\n", + "%timeit(np.mean(samples))" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "1 loops, best of 3: 1.14 s per loop\n", + "10 loops, best of 3: 141 ms per loop" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n" + ] + } + ], + "prompt_number": 14 + }, { "cell_type": "code", "collapsed": false,