Skip to content

Instantly share code, notes, and snippets.

@arokem
Last active January 28, 2016 16:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save arokem/db8396eccc9d138175f3 to your computer and use it in GitHub Desktop.
Save arokem/db8396eccc9d138175f3 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"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