Last active
January 28, 2016 16:47
-
-
Save arokem/db8396eccc9d138175f3 to your computer and use it in GitHub Desktop.
This file contains 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