{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "numpyとfor文でどれくらい差が出るか比較しようとしたもの。10" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import time" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def func1(N):\n", " stime = time.time()\n", " x = np.linspace(0, 2*np.pi, N)\n", " y = np.cos(x)\n", " return time.time() - stime" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def func2(N):\n", " stime = time.time()\n", " x = [i*(2*np.pi)/float(N-1) for i in xrange(N)]\n", " y = []\n", " for _x in x:\n", " y.append(np.cos(_x))\n", " return time.time() - stime" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def search(x, N, dN):\n", " while dN > 2:\n", " while func2(N) < func1(N)*x:\n", " N += dN\n", " else:\n", " dN = dN/2\n", " N -= dN\n", " search(x, N, dN)\n", " result = N\n", " return result" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def test(X):\n", " a = np.arange(X)\n", " b = []\n", " for x in a:\n", " b.append(search(x, 1000, 1000))\n", " return b" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [], "source": [ "a = np.arange(30)\n", "b = test(30)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nWxzGe6Z0AAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "f = plt.figure()\n", "ax = f.add_subplot(111)\n", "ax.set_xscale('linear')\n", "ax.set_yscale('log')\n", "ax.plot(a, np.array(b))\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 0 }