Last active
January 28, 2016 16:47
-
-
Save arokem/db8396eccc9d138175f3 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "import numpy as np" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 2, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "streamline = np.array([[82.20181274, 91.36505890, 43.15737152],\n", | |
| " [82.38442230, 91.79336548, 43.87036514],\n", | |
| " [82.48710632, 92.27861023, 44.56298065],\n", | |
| " [82.53310394, 92.78545380, 45.24635315],\n", | |
| " [82.53793335, 93.26902008, 45.94785309],\n", | |
| " [82.48797607, 93.75003815, 46.64939880],\n", | |
| " [82.35533142, 94.25181580, 47.32533264],\n", | |
| " [82.15484619, 94.76634216, 47.97451019],\n", | |
| " [81.90982819, 95.28792572, 48.60244370],\n", | |
| " [81.63336945, 95.78153229, 49.23971176],\n", | |
| " [81.35479736, 96.24868011, 49.89558792],\n", | |
| " [81.08713531, 96.69807434, 50.56812668],\n", | |
| " [80.81504822, 97.14285278, 51.24193192],\n", | |
| " [80.52591705, 97.56719971, 51.92168427],\n", | |
| " [80.26599884, 97.98269653, 52.61848068],\n", | |
| " [80.04635620, 98.38131714, 53.33855820],\n", | |
| " [79.84691620, 98.77052307, 54.06955338],\n", | |
| " [79.57667542, 99.13599396, 54.78985596],\n", | |
| " [79.23351288, 99.43207550, 55.51065063],\n", | |
| " [78.84815979, 99.64141846, 56.24016571],\n", | |
| " [78.47383881, 99.77347565, 56.99299240],\n", | |
| " [78.12837219, 99.81330872, 57.76969528],\n", | |
| " [77.80438995, 99.85082245, 58.55574799],\n", | |
| " [77.49439240, 99.88065338, 59.34777069],\n", | |
| " [77.21414185, 99.85343933, 60.15090561],\n", | |
| " [76.96416473, 99.82772827, 60.96406937],\n", | |
| " [76.74712372, 99.80519104, 61.78676605],\n", | |
| " [76.52263641, 99.79122162, 62.60765076],\n", | |
| " [76.03757477, 100.08692169, 63.24152374],\n", | |
| " [75.44867706, 100.35265350, 63.79513168],\n", | |
| " [74.78033447, 100.57255554, 64.27278900],\n", | |
| " [74.11605835, 100.77330780, 64.76428986],\n", | |
| " [73.51222992, 100.98779297, 65.32373047],\n", | |
| " [72.97387695, 101.23387146, 65.93502045],\n", | |
| " [72.47355652, 101.49151611, 66.57343292],\n", | |
| " [71.99834442, 101.72480774, 67.23979950],\n", | |
| " [71.56909180, 101.98665619, 67.92664337],\n", | |
| " [71.18083191, 102.29483795, 68.61888123],\n", | |
| " [70.81879425, 102.63343048, 69.31127167],\n", | |
| " [70.47422791, 102.98672485, 70.00532532],\n", | |
| " [70.10092926, 103.28502655, 70.70999908],\n", | |
| " [69.69512177, 103.51667023, 71.42147064],\n", | |
| " [69.27423096, 103.71351624, 72.13452911],\n", | |
| " [68.91260529, 103.81676483, 72.89796448],\n", | |
| " [68.60788727, 103.81982422, 73.69258118],\n", | |
| " [68.34162903, 103.76619720, 74.49915314],\n", | |
| " [68.08542633, 103.70635223, 75.30856323],\n", | |
| " [67.83590698, 103.60187531, 76.11553955],\n", | |
| " [67.56822968, 103.44821930, 76.90870667],\n", | |
| " [67.28399658, 103.25878906, 77.68825531],\n", | |
| " [67.00117493, 103.03740692, 78.45989227],\n", | |
| " [66.72718048, 102.80329895, 79.23099518],\n", | |
| " [66.46197510, 102.54130554, 79.99622345],\n", | |
| " [66.20803833, 102.22305298, 80.74387360],\n", | |
| " [65.96872711, 101.88980865, 81.48987579],\n", | |
| " [65.72864532, 101.59316254, 82.25085449],\n", | |
| " [65.47808075, 101.33383942, 83.02194214],\n", | |
| " [65.21841431, 101.11295319, 83.80186462],\n", | |
| " [64.95678711, 100.94080353, 84.59326935],\n", | |
| " [64.71759033, 100.82022095, 85.40114594],\n", | |
| " [64.48053741, 100.73490143, 86.21411896],\n", | |
| " [64.24304199, 100.65074158, 87.02709198],\n", | |
| " [64.01773834, 100.55318451, 87.84204865],\n", | |
| " [63.83801651, 100.41996765, 88.66333008],\n", | |
| " [63.70982361, 100.25119019, 89.48779297],\n", | |
| " [63.60707855, 100.06730652, 90.31262207],\n", | |
| " [63.46164322, 99.91001892, 91.13648224],\n", | |
| " [63.26287842, 99.78648376, 91.95485687],\n", | |
| " [63.03713226, 99.68377686, 92.76905823],\n", | |
| " [62.81192398, 99.56619263, 93.58140564],\n", | |
| " [62.57145309, 99.42708588, 94.38592529],\n", | |
| " [62.32259369, 99.25592804, 95.18167114],\n", | |
| " [62.07497787, 99.05770111, 95.97154236],\n", | |
| " [61.82253647, 98.83877563, 96.75438690],\n", | |
| " [61.59536743, 98.59293365, 97.53706360],\n", | |
| " [61.46530151, 98.30503845, 98.32772827],\n", | |
| " [61.39904785, 97.97928619, 99.11172485],\n", | |
| " [61.33279419, 97.65353394, 99.89572906],\n", | |
| " [61.26067352, 97.30914307, 100.67123413],\n", | |
| " [61.19459534, 96.96743011, 101.44847107],\n", | |
| " [61.19580460, 96.63417053, 102.23215485],\n", | |
| " [61.26572037, 96.29887390, 103.01185608],\n", | |
| " [61.39840698, 95.96297455, 103.78307343],\n", | |
| " [61.57207870, 95.64262390, 104.55268097],\n", | |
| " [61.78163528, 95.35540771, 105.32629395],\n", | |
| " [62.06700134, 95.09746552, 106.08564758],\n", | |
| " [62.39427185, 94.85724640, 106.83369446],\n", | |
| " [62.74076462, 94.62278748, 107.57482147],\n", | |
| " [63.11461639, 94.40107727, 108.30641937],\n", | |
| " [63.53397751, 94.20418549, 109.02002716],\n", | |
| " [64.00019836, 94.03809357, 109.71183777],\n", | |
| " [64.43580627, 93.87523651, 110.42416382],\n", | |
| " [64.84857941, 93.69993591, 111.14715576],\n", | |
| " [65.26740265, 93.51858521, 111.86515808],\n", | |
| " [65.69511414, 93.36718750, 112.58474731],\n", | |
| " [66.10470581, 93.22719574, 113.31711578],\n", | |
| " [66.45891571, 93.06028748, 114.07256317],\n", | |
| " [66.78582001, 92.90560913, 114.84281921],\n", | |
| " [67.11138916, 92.79004669, 115.62040710],\n", | |
| " [67.44729614, 92.75711823, 116.40135193],\n", | |
| " [67.75688171, 92.98265076, 117.16111755],\n", | |
| " [68.02041626, 93.28012848, 117.91371155],\n", | |
| " [68.25725555, 93.53466797, 118.69052124],\n", | |
| " [68.46047974, 93.63263702, 119.51107788],\n", | |
| " [68.62039948, 93.62007141, 120.34690094],\n", | |
| " [68.76782227, 93.56475067, 121.18331909],\n", | |
| " [68.90222168, 93.46326447, 122.01765442],\n", | |
| " [68.99872589, 93.30039978, 122.84759521],\n", | |
| " [69.04119873, 93.05428314, 123.66156769],\n", | |
| " [69.05086517, 92.74394989, 124.45450592],\n", | |
| " [69.02742004, 92.40427399, 125.23509979],\n", | |
| " [68.95466614, 92.09059143, 126.02339935],\n", | |
| " [68.84975433, 91.79674530, 126.81564331],\n", | |
| " [68.72673798, 91.53726196, 127.61715698],\n", | |
| " [68.60685730, 91.30300140, 128.42681885],\n", | |
| " [68.50636292, 91.12481689, 129.25317383],\n", | |
| " [68.39311218, 91.01572418, 130.08976746],\n", | |
| " [68.25946808, 90.94654083, 130.92756653]],\n", | |
| " dtype=np.float32)\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 3, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "sl = [streamline for i in range(200000)]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 4, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "affine = np.array([[1, 0, 0, -100], \n", | |
| " [0, 1, 0, 10],\n", | |
| " [0, 0, 1, 1],\n", | |
| " [0, 0, 0, 1]])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 5, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "inv_affine = np.linalg.inv(affine)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 6, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "1 loops, best of 3: 1.65 s per loop\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "%%timeit\n", | |
| "xform_streamline1 = []\n", | |
| "for s in sl: \n", | |
| " xform_streamline1.append(np.dot(s, inv_affine[:3, :3]) + inv_affine[:3, 3])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 7, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "1 loops, best of 3: 1.63 s per loop\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "%%timeit\n", | |
| "xform_streamline2 = []\n", | |
| "for s in sl:\n", | |
| " a = np.ones((s.shape[0], 4))\n", | |
| " a[:, :3] = s \n", | |
| " xform_streamline2.append(np.dot(a, inv_affine)[:, :3])" | |
| ] | |
| } | |
| ], | |
| "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.11" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 0 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment