|
1 | 1 | import numpy as np |
2 | 2 | import pandas.util.testing as tm |
3 | | -from pandas import (Series, date_range, DatetimeIndex, Index, MultiIndex, |
4 | | - RangeIndex) |
| 3 | +from pandas import (Series, date_range, DatetimeIndex, Index, RangeIndex, |
| 4 | + Float64Index) |
5 | 5 |
|
6 | 6 | from .pandas_vb_common import setup # noqa |
7 | 7 |
|
@@ -84,66 +84,6 @@ def time_modulo(self, dtype): |
84 | 84 | self.index % 2 |
85 | 85 |
|
86 | 86 |
|
87 | | -class Duplicated(object): |
88 | | - |
89 | | - goal_time = 0.2 |
90 | | - |
91 | | - def setup(self): |
92 | | - n, k = 200, 5000 |
93 | | - levels = [np.arange(n), |
94 | | - tm.makeStringIndex(n).values, |
95 | | - 1000 + np.arange(n)] |
96 | | - labels = [np.random.choice(n, (k * n)) for lev in levels] |
97 | | - self.mi = MultiIndex(levels=levels, labels=labels) |
98 | | - |
99 | | - def time_duplicated(self): |
100 | | - self.mi.duplicated() |
101 | | - |
102 | | - |
103 | | -class Sortlevel(object): |
104 | | - |
105 | | - goal_time = 0.2 |
106 | | - |
107 | | - def setup(self): |
108 | | - n = 1182720 |
109 | | - low, high = -4096, 4096 |
110 | | - arrs = [np.repeat(np.random.randint(low, high, (n // k)), k) |
111 | | - for k in [11, 7, 5, 3, 1]] |
112 | | - self.mi_int = MultiIndex.from_arrays(arrs)[np.random.permutation(n)] |
113 | | - |
114 | | - a = np.repeat(np.arange(100), 1000) |
115 | | - b = np.tile(np.arange(1000), 100) |
116 | | - self.mi = MultiIndex.from_arrays([a, b]) |
117 | | - self.mi = self.mi.take(np.random.permutation(np.arange(100000))) |
118 | | - |
119 | | - def time_sortlevel_int64(self): |
120 | | - self.mi_int.sortlevel() |
121 | | - |
122 | | - def time_sortlevel_zero(self): |
123 | | - self.mi.sortlevel(0) |
124 | | - |
125 | | - def time_sortlevel_one(self): |
126 | | - self.mi.sortlevel(1) |
127 | | - |
128 | | - |
129 | | -class MultiIndexValues(object): |
130 | | - |
131 | | - goal_time = 0.2 |
132 | | - |
133 | | - def setup_cache(self): |
134 | | - |
135 | | - level1 = range(1000) |
136 | | - level2 = date_range(start='1/1/2012', periods=100) |
137 | | - mi = MultiIndex.from_product([level1, level2]) |
138 | | - return mi |
139 | | - |
140 | | - def time_datetime_level_values_copy(self, mi): |
141 | | - mi.copy().values |
142 | | - |
143 | | - def time_datetime_level_values_sliced(self, mi): |
144 | | - mi[:10].values |
145 | | - |
146 | | - |
147 | 87 | class Range(object): |
148 | 88 |
|
149 | 89 | goal_time = 0.2 |
@@ -222,3 +162,16 @@ def time_slice(self, dtype): |
222 | 162 |
|
223 | 163 | def time_slice_step(self, dtype): |
224 | 164 | self.idx[::2] |
| 165 | + |
| 166 | + |
| 167 | +class Float64IndexMethod(object): |
| 168 | + # GH 13166 |
| 169 | + goal_time = 0.2 |
| 170 | + |
| 171 | + def setup(self): |
| 172 | + N = 100000 |
| 173 | + a = np.arange(N) |
| 174 | + self.ind = Float64Index(a * 4.8000000418824129e-08) |
| 175 | + |
| 176 | + def time_get_loc(self): |
| 177 | + self.ind.get_loc(0) |
0 commit comments