Skip to content

Commit b4e70a5

Browse files
committed
Added second version of permuting that is much faster
1 parent 0c450e4 commit b4e70a5

File tree

2 files changed

+131
-28
lines changed

2 files changed

+131
-28
lines changed

filtering-and-assigning.ipynb

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"metadata": {
33
"name": "",
4-
"signature": "sha256:60a4c5c217936c0f2f09da9eb33c21aabef60b11111b98ab15f01d64ab80006e"
4+
"signature": "sha256:bfca8ede59adad1aeea1439f49f58e1afa4ea7d9edfe8ac3e662dff650e172f4"
55
},
66
"nbformat": 3,
77
"nbformat_minor": 0,
@@ -122,12 +122,12 @@
122122
"cell_type": "code",
123123
"collapsed": false,
124124
"input": [
125-
"ind = (df['key1'] == 'a') & (df['data'] > 0.5)"
125+
"ind = (df['key1'] == 'a') & (df['data'] > 0.2)"
126126
],
127127
"language": "python",
128128
"metadata": {},
129129
"outputs": [],
130-
"prompt_number": 4
130+
"prompt_number": 10
131131
},
132132
{
133133
"cell_type": "code",
@@ -141,9 +141,9 @@
141141
{
142142
"metadata": {},
143143
"output_type": "pyout",
144-
"prompt_number": 5,
144+
"prompt_number": 11,
145145
"text": [
146-
"0 False\n",
146+
"0 True\n",
147147
"1 False\n",
148148
"2 False\n",
149149
"3 False\n",
@@ -152,7 +152,7 @@
152152
]
153153
}
154154
],
155-
"prompt_number": 5
155+
"prompt_number": 11
156156
},
157157
{
158158
"cell_type": "code",
@@ -190,7 +190,7 @@
190190
"language": "python",
191191
"metadata": {},
192192
"outputs": [],
193-
"prompt_number": 8
193+
"prompt_number": 12
194194
},
195195
{
196196
"cell_type": "markdown",
@@ -225,7 +225,7 @@
225225
" <th>0</th>\n",
226226
" <td> 0.215410</td>\n",
227227
" <td> a</td>\n",
228-
" <td> one</td>\n",
228+
" <td> 0.2154102</td>\n",
229229
" </tr>\n",
230230
" <tr>\n",
231231
" <th>1</th>\n",
@@ -257,18 +257,18 @@
257257
],
258258
"metadata": {},
259259
"output_type": "pyout",
260-
"prompt_number": 9,
260+
"prompt_number": 13,
261261
"text": [
262262
" data key1 key2\n",
263-
"0 0.215410 a one\n",
263+
"0 0.215410 a 0.2154102\n",
264264
"1 0.025453 a two\n",
265265
"2 0.360868 b one\n",
266266
"3 0.853243 b two\n",
267267
"4 0.794009 a 0.7940085"
268268
]
269269
}
270270
],
271-
"prompt_number": 9
271+
"prompt_number": 13
272272
},
273273
{
274274
"cell_type": "code",

permuting-a-list.ipynb

Lines changed: 120 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"metadata": {
33
"name": "",
4-
"signature": "sha256:4df052cc8c56936d4bac355ac1bda0ff5199c6e9ed5f39a23f6107ac442b924e"
4+
"signature": "sha256:5ebed62298b4a7912e2f7e33c377c13bb6d31b8e00c48d9f79c908fe3a6a2552"
55
},
66
"nbformat": 3,
77
"nbformat_minor": 0,
@@ -19,17 +19,6 @@
1919
"outputs": [],
2020
"prompt_number": 1
2121
},
22-
{
23-
"cell_type": "code",
24-
"collapsed": false,
25-
"input": [
26-
"offset = 2"
27-
],
28-
"language": "python",
29-
"metadata": {},
30-
"outputs": [],
31-
"prompt_number": 2
32-
},
3322
{
3423
"cell_type": "code",
3524
"collapsed": false,
@@ -106,29 +95,143 @@
10695
"cell_type": "code",
10796
"collapsed": false,
10897
"input": [
109-
"permute1(a, -1)"
98+
"permute1(a, 6)"
99+
],
100+
"language": "python",
101+
"metadata": {},
102+
"outputs": [
103+
{
104+
"metadata": {},
105+
"output_type": "pyout",
106+
"prompt_number": 25,
107+
"text": [
108+
"[1, 2, 3, 4, 0]"
109+
]
110+
}
111+
],
112+
"prompt_number": 25
113+
},
114+
{
115+
"cell_type": "code",
116+
"collapsed": false,
117+
"input": [
118+
"def permute2(inList, offset):\n",
119+
" offset %= len(inList)\n",
120+
" return inList[offset:] + inList[:offset]"
121+
],
122+
"language": "python",
123+
"metadata": {},
124+
"outputs": [],
125+
"prompt_number": 30
126+
},
127+
{
128+
"cell_type": "code",
129+
"collapsed": false,
130+
"input": [
131+
"permute2(a, 1)"
132+
],
133+
"language": "python",
134+
"metadata": {},
135+
"outputs": [
136+
{
137+
"metadata": {},
138+
"output_type": "pyout",
139+
"prompt_number": 34,
140+
"text": [
141+
"[1, 2, 3, 4, 0]"
142+
]
143+
}
144+
],
145+
"prompt_number": 34
146+
},
147+
{
148+
"cell_type": "code",
149+
"collapsed": false,
150+
"input": [
151+
"permute2(a, 2)"
110152
],
111153
"language": "python",
112154
"metadata": {},
113155
"outputs": [
114156
{
115157
"metadata": {},
116158
"output_type": "pyout",
117-
"prompt_number": 16,
159+
"prompt_number": 33,
160+
"text": [
161+
"[2, 3, 4, 0, 1]"
162+
]
163+
}
164+
],
165+
"prompt_number": 33
166+
},
167+
{
168+
"cell_type": "code",
169+
"collapsed": false,
170+
"input": [
171+
"permute2(a, -1)"
172+
],
173+
"language": "python",
174+
"metadata": {},
175+
"outputs": [
176+
{
177+
"metadata": {},
178+
"output_type": "pyout",
179+
"prompt_number": 38,
118180
"text": [
119181
"[4, 0, 1, 2, 3]"
120182
]
121183
}
122184
],
123-
"prompt_number": 16
185+
"prompt_number": 38
186+
},
187+
{
188+
"cell_type": "code",
189+
"collapsed": false,
190+
"input": [
191+
"a = range(1000)"
192+
],
193+
"language": "python",
194+
"metadata": {},
195+
"outputs": [],
196+
"prompt_number": 42
197+
},
198+
{
199+
"cell_type": "code",
200+
"collapsed": false,
201+
"input": [
202+
"%timeit permute1(a,500)"
203+
],
204+
"language": "python",
205+
"metadata": {},
206+
"outputs": [
207+
{
208+
"output_type": "stream",
209+
"stream": "stdout",
210+
"text": [
211+
"1000 loops, best of 3: 207 \u00b5s per loop\n"
212+
]
213+
}
214+
],
215+
"prompt_number": 43
124216
},
125217
{
126218
"cell_type": "code",
127219
"collapsed": false,
128-
"input": [],
220+
"input": [
221+
"%timeit permute2(a,500)"
222+
],
129223
"language": "python",
130224
"metadata": {},
131-
"outputs": []
225+
"outputs": [
226+
{
227+
"output_type": "stream",
228+
"stream": "stdout",
229+
"text": [
230+
"100000 loops, best of 3: 7.63 \u00b5s per loop\n"
231+
]
232+
}
233+
],
234+
"prompt_number": 45
132235
}
133236
],
134237
"metadata": {}

0 commit comments

Comments
 (0)