@@ -19,6 +19,9 @@ def time_getitem_list_like(self):
19
19
def time_getitem_array (self ):
20
20
self .s [np .arange (10000 )]
21
21
22
+ def time_getitem_lists (self ):
23
+ self .s [np .arange (10000 ).tolist ()]
24
+
22
25
def time_iloc_array (self ):
23
26
self .s .iloc [np .arange (10000 )]
24
27
@@ -190,10 +193,22 @@ def setup(self):
190
193
np .arange (1000 )], names = ['one' , 'two' ])
191
194
192
195
import string
193
- self . mistring = MultiIndex . from_product (
194
- [ np . arange ( 1000 ),
195
- np .arange (20 ), list (string .ascii_letters )],
196
+
197
+ self . mi_large = MultiIndex . from_product (
198
+ [ np . arange ( 1000 ), np .arange (20 ), list (string .ascii_letters )],
196
199
names = ['one' , 'two' , 'three' ])
200
+ self .mi_med = MultiIndex .from_product (
201
+ [np .arange (1000 ), np .arange (10 ), list ('A' )],
202
+ names = ['one' , 'two' , 'three' ])
203
+ self .mi_small = MultiIndex .from_product (
204
+ [np .arange (100 ), list ('A' ), list ('A' )],
205
+ names = ['one' , 'two' , 'three' ])
206
+
207
+ rng = np .random .RandomState (4 )
208
+ size = 1 << 16
209
+ self .mi_unused_levels = pd .MultiIndex .from_arrays ([
210
+ rng .randint (0 , 1 << 13 , size ),
211
+ rng .randint (0 , 1 << 10 , size )])[rng .rand (size ) < 0.1 ]
197
212
198
213
def time_series_xs_mi_ix (self ):
199
214
self .s .ix [999 ]
@@ -215,12 +230,33 @@ def time_multiindex_get_indexer(self):
215
230
(0 , 16 ), (0 , 17 ), (0 , 18 ),
216
231
(0 , 19 )], dtype = object ))
217
232
233
+ def time_multiindex_large_get_loc (self ):
234
+ self .mi_large .get_loc ((999 , 19 , 'Z' ))
235
+
236
+ def time_multiindex_large_get_loc_warm (self ):
237
+ for _ in range (1000 ):
238
+ self .mi_large .get_loc ((999 , 19 , 'Z' ))
239
+
240
+ def time_multiindex_med_get_loc (self ):
241
+ self .mi_med .get_loc ((999 , 9 , 'A' ))
242
+
243
+ def time_multiindex_med_get_loc_warm (self ):
244
+ for _ in range (1000 ):
245
+ self .mi_med .get_loc ((999 , 9 , 'A' ))
246
+
218
247
def time_multiindex_string_get_loc (self ):
219
- self .mistring .get_loc ((999 , 19 , 'Z' ))
248
+ self .mi_small .get_loc ((99 , 'A' , 'A' ))
249
+
250
+ def time_multiindex_small_get_loc_warm (self ):
251
+ for _ in range (1000 ):
252
+ self .mi_small .get_loc ((99 , 'A' , 'A' ))
220
253
221
254
def time_is_monotonic (self ):
222
255
self .miint .is_monotonic
223
256
257
+ def time_remove_unused_levels (self ):
258
+ self .mi_unused_levels .remove_unused_levels ()
259
+
224
260
225
261
class IntervalIndexing (object ):
226
262
goal_time = 0.2
0 commit comments