Skip to content

Commit 43171df

Browse files
committed
row slice benchmark
1 parent cabe3a8 commit 43171df

File tree

2 files changed

+94
-20
lines changed

2 files changed

+94
-20
lines changed

.ipynb_checkpoints/timeit_tests-checkpoint.ipynb

Lines changed: 47 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"metadata": {
33
"name": "",
4-
"signature": "sha256:8294645ddf3a6997a4764ca0bb61458953a6e579d858ecbf59e69882af05d0df"
4+
"signature": "sha256:08918c81301f699d85bfad155946f6e0102ce07bb31796cb9bdda23ffb2e22a6"
55
},
66
"nbformat": 3,
77
"nbformat_minor": 0,
@@ -1486,6 +1486,8 @@
14861486
"cell_type": "code",
14871487
"collapsed": false,
14881488
"input": [
1489+
"# 1st column, e.g., A[:,0:1]\n",
1490+
"\n",
14891491
"def colvec_method2(A):\n",
14901492
" for idx in range(A.shape[1]):\n",
14911493
" colvec = A[:,idx:idx+1]\n",
@@ -1500,9 +1502,11 @@
15001502
"cell_type": "code",
15011503
"collapsed": false,
15021504
"input": [
1505+
"# 1st column, e.g., A[:,0].reshape(-1,1)\n",
1506+
"\n",
15031507
"def colvec_method3(A):\n",
15041508
" for idx in range(A.shape[1]):\n",
1505-
" colvec = A[:,idx].reshape(A.shape[0],1)\n",
1509+
" colvec = A[:,idx].reshape(-1,1)\n",
15061510
" yield colvec"
15071511
],
15081512
"language": "python",
@@ -1514,6 +1518,8 @@
15141518
"cell_type": "code",
15151519
"collapsed": false,
15161520
"input": [
1521+
"# 1st column, e.g., np.vstack(A[:,0]\n",
1522+
"\n",
15171523
"def colvec_method4(A):\n",
15181524
" for idx in range(A.shape[1]):\n",
15191525
" colvec = np.vstack(A[:,idx])\n",
@@ -1528,6 +1534,8 @@
15281534
"cell_type": "code",
15291535
"collapsed": false,
15301536
"input": [
1537+
"# 1st column, e.g., np.row_stack(A[:,0])\n",
1538+
"\n",
15311539
"def colvec_method5(A):\n",
15321540
" for idx in range(A.shape[1]):\n",
15331541
" colvec = np.row_stack(A[:,idx])\n",
@@ -1542,6 +1550,8 @@
15421550
"cell_type": "code",
15431551
"collapsed": false,
15441552
"input": [
1553+
"# 1st column, e.g., np.column_stack((A[:,0],))\n",
1554+
"\n",
15451555
"def colvec_method6(A):\n",
15461556
" for idx in range(A.shape[1]):\n",
15471557
" colvec = np.column_stack((A[:,idx],))\n",
@@ -1552,6 +1562,22 @@
15521562
"outputs": [],
15531563
"prompt_number": 74
15541564
},
1565+
{
1566+
"cell_type": "code",
1567+
"collapsed": false,
1568+
"input": [
1569+
"# 1st column, e.g., A[:,[0]]\n",
1570+
"\n",
1571+
"def colvec_method7(A):\n",
1572+
" for idx in range(A.shape[1]):\n",
1573+
" colvec = A[:,[idx]]\n",
1574+
" yield colvec"
1575+
],
1576+
"language": "python",
1577+
"metadata": {},
1578+
"outputs": [],
1579+
"prompt_number": 89
1580+
},
15551581
{
15561582
"cell_type": "code",
15571583
"collapsed": false,
@@ -1576,7 +1602,8 @@
15761602
"for method in [\n",
15771603
" colvec_method1, colvec_method2, \n",
15781604
" colvec_method3, colvec_method4, \n",
1579-
" colvec_method5, colvec_method6]:\n",
1605+
" colvec_method5, colvec_method6,\n",
1606+
" colvec_method7]:\n",
15801607
" print('\\nTest:', method.__name__)\n",
15811608
" %timeit test_method(colvec_method2, A)"
15821609
],
@@ -1589,7 +1616,7 @@
15891616
"text": [
15901617
"\n",
15911618
"Test: colvec_method1\n",
1592-
"100000 loops, best of 3: 17.7 \u00b5s per loop"
1619+
"100000 loops, best of 3: 16.6 \u00b5s per loop"
15931620
]
15941621
},
15951622
{
@@ -1599,7 +1626,7 @@
15991626
"\n",
16001627
"\n",
16011628
"Test: colvec_method2\n",
1602-
"10000 loops, best of 3: 16.4 \u00b5s per loop"
1629+
"10000 loops, best of 3: 16.1 \u00b5s per loop"
16031630
]
16041631
},
16051632
{
@@ -1609,7 +1636,7 @@
16091636
"\n",
16101637
"\n",
16111638
"Test: colvec_method3\n",
1612-
"100000 loops, best of 3: 17.3 \u00b5s per loop"
1639+
"100000 loops, best of 3: 16.2 \u00b5s per loop"
16131640
]
16141641
},
16151642
{
@@ -1619,7 +1646,7 @@
16191646
"\n",
16201647
"\n",
16211648
"Test: colvec_method4\n",
1622-
"10000 loops, best of 3: 16.4 \u00b5s per loop"
1649+
"100000 loops, best of 3: 16.4 \u00b5s per loop"
16231650
]
16241651
},
16251652
{
@@ -1629,7 +1656,7 @@
16291656
"\n",
16301657
"\n",
16311658
"Test: colvec_method5\n",
1632-
"100000 loops, best of 3: 17.1 \u00b5s per loop"
1659+
"100000 loops, best of 3: 16.2 \u00b5s per loop"
16331660
]
16341661
},
16351662
{
@@ -1639,7 +1666,17 @@
16391666
"\n",
16401667
"\n",
16411668
"Test: colvec_method6\n",
1642-
"100000 loops, best of 3: 16.6 \u00b5s per loop"
1669+
"100000 loops, best of 3: 16.8 \u00b5s per loop"
1670+
]
1671+
},
1672+
{
1673+
"output_type": "stream",
1674+
"stream": "stdout",
1675+
"text": [
1676+
"\n",
1677+
"\n",
1678+
"Test: colvec_method7\n",
1679+
"100000 loops, best of 3: 16.3 \u00b5s per loop"
16431680
]
16441681
},
16451682
{
@@ -1650,7 +1687,7 @@
16501687
]
16511688
}
16521689
],
1653-
"prompt_number": 86
1690+
"prompt_number": 91
16541691
},
16551692
{
16561693
"cell_type": "code",

benchmarks/timeit_tests.ipynb

Lines changed: 47 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"metadata": {
33
"name": "",
4-
"signature": "sha256:8294645ddf3a6997a4764ca0bb61458953a6e579d858ecbf59e69882af05d0df"
4+
"signature": "sha256:08918c81301f699d85bfad155946f6e0102ce07bb31796cb9bdda23ffb2e22a6"
55
},
66
"nbformat": 3,
77
"nbformat_minor": 0,
@@ -1486,6 +1486,8 @@
14861486
"cell_type": "code",
14871487
"collapsed": false,
14881488
"input": [
1489+
"# 1st column, e.g., A[:,0:1]\n",
1490+
"\n",
14891491
"def colvec_method2(A):\n",
14901492
" for idx in range(A.shape[1]):\n",
14911493
" colvec = A[:,idx:idx+1]\n",
@@ -1500,9 +1502,11 @@
15001502
"cell_type": "code",
15011503
"collapsed": false,
15021504
"input": [
1505+
"# 1st column, e.g., A[:,0].reshape(-1,1)\n",
1506+
"\n",
15031507
"def colvec_method3(A):\n",
15041508
" for idx in range(A.shape[1]):\n",
1505-
" colvec = A[:,idx].reshape(A.shape[0],1)\n",
1509+
" colvec = A[:,idx].reshape(-1,1)\n",
15061510
" yield colvec"
15071511
],
15081512
"language": "python",
@@ -1514,6 +1518,8 @@
15141518
"cell_type": "code",
15151519
"collapsed": false,
15161520
"input": [
1521+
"# 1st column, e.g., np.vstack(A[:,0]\n",
1522+
"\n",
15171523
"def colvec_method4(A):\n",
15181524
" for idx in range(A.shape[1]):\n",
15191525
" colvec = np.vstack(A[:,idx])\n",
@@ -1528,6 +1534,8 @@
15281534
"cell_type": "code",
15291535
"collapsed": false,
15301536
"input": [
1537+
"# 1st column, e.g., np.row_stack(A[:,0])\n",
1538+
"\n",
15311539
"def colvec_method5(A):\n",
15321540
" for idx in range(A.shape[1]):\n",
15331541
" colvec = np.row_stack(A[:,idx])\n",
@@ -1542,6 +1550,8 @@
15421550
"cell_type": "code",
15431551
"collapsed": false,
15441552
"input": [
1553+
"# 1st column, e.g., np.column_stack((A[:,0],))\n",
1554+
"\n",
15451555
"def colvec_method6(A):\n",
15461556
" for idx in range(A.shape[1]):\n",
15471557
" colvec = np.column_stack((A[:,idx],))\n",
@@ -1552,6 +1562,22 @@
15521562
"outputs": [],
15531563
"prompt_number": 74
15541564
},
1565+
{
1566+
"cell_type": "code",
1567+
"collapsed": false,
1568+
"input": [
1569+
"# 1st column, e.g., A[:,[0]]\n",
1570+
"\n",
1571+
"def colvec_method7(A):\n",
1572+
" for idx in range(A.shape[1]):\n",
1573+
" colvec = A[:,[idx]]\n",
1574+
" yield colvec"
1575+
],
1576+
"language": "python",
1577+
"metadata": {},
1578+
"outputs": [],
1579+
"prompt_number": 89
1580+
},
15551581
{
15561582
"cell_type": "code",
15571583
"collapsed": false,
@@ -1576,7 +1602,8 @@
15761602
"for method in [\n",
15771603
" colvec_method1, colvec_method2, \n",
15781604
" colvec_method3, colvec_method4, \n",
1579-
" colvec_method5, colvec_method6]:\n",
1605+
" colvec_method5, colvec_method6,\n",
1606+
" colvec_method7]:\n",
15801607
" print('\\nTest:', method.__name__)\n",
15811608
" %timeit test_method(colvec_method2, A)"
15821609
],
@@ -1589,7 +1616,7 @@
15891616
"text": [
15901617
"\n",
15911618
"Test: colvec_method1\n",
1592-
"100000 loops, best of 3: 17.7 \u00b5s per loop"
1619+
"100000 loops, best of 3: 16.6 \u00b5s per loop"
15931620
]
15941621
},
15951622
{
@@ -1599,7 +1626,7 @@
15991626
"\n",
16001627
"\n",
16011628
"Test: colvec_method2\n",
1602-
"10000 loops, best of 3: 16.4 \u00b5s per loop"
1629+
"10000 loops, best of 3: 16.1 \u00b5s per loop"
16031630
]
16041631
},
16051632
{
@@ -1609,7 +1636,7 @@
16091636
"\n",
16101637
"\n",
16111638
"Test: colvec_method3\n",
1612-
"100000 loops, best of 3: 17.3 \u00b5s per loop"
1639+
"100000 loops, best of 3: 16.2 \u00b5s per loop"
16131640
]
16141641
},
16151642
{
@@ -1619,7 +1646,7 @@
16191646
"\n",
16201647
"\n",
16211648
"Test: colvec_method4\n",
1622-
"10000 loops, best of 3: 16.4 \u00b5s per loop"
1649+
"100000 loops, best of 3: 16.4 \u00b5s per loop"
16231650
]
16241651
},
16251652
{
@@ -1629,7 +1656,7 @@
16291656
"\n",
16301657
"\n",
16311658
"Test: colvec_method5\n",
1632-
"100000 loops, best of 3: 17.1 \u00b5s per loop"
1659+
"100000 loops, best of 3: 16.2 \u00b5s per loop"
16331660
]
16341661
},
16351662
{
@@ -1639,7 +1666,17 @@
16391666
"\n",
16401667
"\n",
16411668
"Test: colvec_method6\n",
1642-
"100000 loops, best of 3: 16.6 \u00b5s per loop"
1669+
"100000 loops, best of 3: 16.8 \u00b5s per loop"
1670+
]
1671+
},
1672+
{
1673+
"output_type": "stream",
1674+
"stream": "stdout",
1675+
"text": [
1676+
"\n",
1677+
"\n",
1678+
"Test: colvec_method7\n",
1679+
"100000 loops, best of 3: 16.3 \u00b5s per loop"
16431680
]
16441681
},
16451682
{
@@ -1650,7 +1687,7 @@
16501687
]
16511688
}
16521689
],
1653-
"prompt_number": 86
1690+
"prompt_number": 91
16541691
},
16551692
{
16561693
"cell_type": "code",

0 commit comments

Comments
 (0)