Skip to content

Commit f5fc3a0

Browse files
mroeschkejreback
authored andcommitted
CLN: ASV series_methods (#19046)
1 parent e581b14 commit f5fc3a0

File tree

1 file changed

+64
-130
lines changed

1 file changed

+64
-130
lines changed

asv_bench/benchmarks/series_methods.py

+64-130
Original file line numberDiff line numberDiff line change
@@ -1,185 +1,119 @@
1-
from .pandas_vb_common import *
1+
from datetime import datetime
22

3+
import numpy as np
4+
import pandas.util.testing as tm
5+
from pandas import Series, date_range, NaT
36

4-
class series_constructor_no_data_datetime_index(object):
5-
goal_time = 0.2
6-
7-
def setup(self):
8-
self.dr = pd.date_range(
9-
start=datetime(2015,10,26),
10-
end=datetime(2016,1,1),
11-
freq='50s'
12-
) # ~100k long
13-
14-
def time_series_constructor_no_data_datetime_index(self):
15-
Series(data=None, index=self.dr)
16-
17-
18-
class series_constructor_dict_data_datetime_index(object):
19-
goal_time = 0.2
20-
21-
def setup(self):
22-
self.dr = pd.date_range(
23-
start=datetime(2015, 10, 26),
24-
end=datetime(2016, 1, 1),
25-
freq='50s'
26-
) # ~100k long
27-
self.data = {d: v for d, v in zip(self.dr, range(len(self.dr)))}
7+
from .pandas_vb_common import setup # noqa
288

29-
def time_series_constructor_no_data_datetime_index(self):
30-
Series(data=self.data, index=self.dr)
319

10+
class SeriesConstructor(object):
3211

33-
class series_isin_int64(object):
3412
goal_time = 0.2
13+
params = [None, 'dict']
14+
param_names = ['data']
3515

36-
def setup(self):
37-
self.s3 = Series(np.random.randint(1, 10, 100000)).astype('int64')
38-
self.s4 = Series(np.random.randint(1, 100, 10000000)).astype('int64')
39-
self.values = [1, 2]
16+
def setup(self, data):
17+
self.idx = date_range(start=datetime(2015, 10, 26),
18+
end=datetime(2016, 1, 1),
19+
freq='50s')
20+
dict_data = dict(zip(self.idx, range(len(self.idx))))
21+
self.data = None if data is None else dict_data
4022

41-
def time_series_isin_int64(self):
42-
self.s3.isin(self.values)
23+
def time_constructor(self, data):
24+
Series(data=self.data, index=self.idx)
4325

44-
def time_series_isin_int64_large(self):
45-
self.s4.isin(self.values)
4626

27+
class IsIn(object):
4728

48-
class series_isin_object(object):
4929
goal_time = 0.2
30+
params = ['int64', 'object']
31+
param_names = ['dtype']
5032

51-
def setup(self):
52-
self.s3 = Series(np.random.randint(1, 10, 100000)).astype('int64')
33+
def setup(self, dtype):
34+
self.s = Series(np.random.randint(1, 10, 100000)).astype(dtype)
5335
self.values = [1, 2]
54-
self.s4 = self.s3.astype('object')
5536

56-
def time_series_isin_object(self):
57-
self.s4.isin(self.values)
37+
def time_isin(self, dtypes):
38+
self.s.isin(self.values)
5839

5940

60-
class series_nlargest1(object):
61-
goal_time = 0.2
62-
63-
def setup(self):
64-
self.s1 = Series(np.random.randn(10000))
65-
self.s2 = Series(np.random.randint(1, 10, 10000))
66-
self.s3 = Series(np.random.randint(1, 10, 100000)).astype('int64')
67-
self.values = [1, 2]
68-
self.s4 = self.s3.astype('object')
69-
70-
def time_series_nlargest1(self):
71-
self.s1.nlargest(3, keep='last')
72-
self.s1.nlargest(3, keep='first')
73-
41+
class NSort(object):
7442

75-
class series_nlargest2(object):
7643
goal_time = 0.2
44+
params = ['last', 'first']
45+
param_names = ['keep']
7746

78-
def setup(self):
79-
self.s1 = Series(np.random.randn(10000))
80-
self.s2 = Series(np.random.randint(1, 10, 10000))
81-
self.s3 = Series(np.random.randint(1, 10, 100000)).astype('int64')
82-
self.values = [1, 2]
83-
self.s4 = self.s3.astype('object')
84-
85-
def time_series_nlargest2(self):
86-
self.s2.nlargest(3, keep='last')
87-
self.s2.nlargest(3, keep='first')
47+
def setup(self, keep):
48+
self.s = Series(np.random.randint(1, 10, 100000))
8849

50+
def time_nlargest(self, keep):
51+
self.s.nlargest(3, keep=keep)
8952

90-
class series_nsmallest2(object):
91-
goal_time = 0.2
53+
def time_nsmallest(self, keep):
54+
self.s.nsmallest(3, keep=keep)
9255

93-
def setup(self):
94-
self.s1 = Series(np.random.randn(10000))
95-
self.s2 = Series(np.random.randint(1, 10, 10000))
96-
self.s3 = Series(np.random.randint(1, 10, 100000)).astype('int64')
97-
self.values = [1, 2]
98-
self.s4 = self.s3.astype('object')
9956

100-
def time_series_nsmallest2(self):
101-
self.s2.nsmallest(3, keep='last')
102-
self.s2.nsmallest(3, keep='first')
57+
class Dropna(object):
10358

104-
105-
class series_dropna_int64(object):
10659
goal_time = 0.2
107-
108-
def setup(self):
109-
self.s = Series(np.random.randint(1, 10, 1000000))
110-
111-
def time_series_dropna_int64(self):
60+
params = ['int', 'datetime']
61+
param_names = ['dtype']
62+
63+
def setup(self, dtype):
64+
N = 10**6
65+
data = {'int': np.random.randint(1, 10, N),
66+
'datetime': date_range('2000-01-01', freq='S', periods=N)}
67+
self.s = Series(data[dtype])
68+
if dtype == 'datetime':
69+
self.s[np.random.randint(1, N, 100)] = NaT
70+
71+
def time_dropna(self, dtype):
11272
self.s.dropna()
11373

11474

115-
class series_dropna_datetime(object):
116-
goal_time = 0.2
117-
118-
def setup(self):
119-
self.s = Series(pd.date_range('2000-01-01', freq='S', periods=1000000))
120-
self.s[np.random.randint(1, 1000000, 100)] = pd.NaT
121-
122-
def time_series_dropna_datetime(self):
123-
self.s.dropna()
124-
75+
class Map(object):
12576

126-
class series_map_dict(object):
12777
goal_time = 0.2
78+
params = ['dict', 'Series']
79+
param_names = 'mapper'
12880

129-
def setup(self):
81+
def setup(self, mapper):
13082
map_size = 1000
83+
map_data = Series(map_size - np.arange(map_size))
84+
self.map_data = map_data if mapper == 'Series' else map_data.to_dict()
13185
self.s = Series(np.random.randint(0, map_size, 10000))
132-
self.map_dict = {i: map_size - i for i in range(map_size)}
13386

134-
def time_series_map_dict(self):
135-
self.s.map(self.map_dict)
87+
def time_map(self, mapper):
88+
self.s.map(self.map_data)
13689

13790

138-
class series_map_series(object):
139-
goal_time = 0.2
91+
class Clip(object):
14092

141-
def setup(self):
142-
map_size = 1000
143-
self.s = Series(np.random.randint(0, map_size, 10000))
144-
self.map_series = Series(map_size - np.arange(map_size))
145-
146-
def time_series_map_series(self):
147-
self.s.map(self.map_series)
148-
149-
150-
class series_clip(object):
15193
goal_time = 0.2
15294

15395
def setup(self):
154-
self.s = pd.Series(np.random.randn(50))
96+
self.s = Series(np.random.randn(50))
15597

156-
def time_series_dropna_datetime(self):
98+
def time_clip(self):
15799
self.s.clip(0, 1)
158100

159101

160-
class series_value_counts(object):
161-
goal_time = 0.2
102+
class ValueCounts(object):
162103

163-
def setup(self):
164-
self.s = Series(np.random.randint(0, 1000, size=100000))
165-
self.s2 = self.s.astype(float)
104+
goal_time = 0.2
105+
params = ['int', 'float', 'object']
106+
param_names = ['dtype']
166107

167-
self.K = 1000
168-
self.N = 100000
169-
self.uniques = tm.makeStringIndex(self.K).values
170-
self.s3 = Series(np.tile(self.uniques, (self.N // self.K)))
108+
def setup(self, dtype):
109+
self.s = Series(np.random.randint(0, 1000, size=100000)).astype(dtype)
171110

172-
def time_value_counts_int64(self):
111+
def time_value_counts(self, dtype):
173112
self.s.value_counts()
174113

175-
def time_value_counts_float64(self):
176-
self.s2.value_counts()
177-
178-
def time_value_counts_strings(self):
179-
self.s.value_counts()
180114

115+
class Dir(object):
181116

182-
class series_dir(object):
183117
goal_time = 0.2
184118

185119
def setup(self):

0 commit comments

Comments
 (0)