33import pandas .computation .expressions as expr
44
55
6- class eval_frame_add_all_threads (object ):
6+ class eval_frame (object ):
77 goal_time = 0.2
88
9- def setup (self ):
10- self .df = DataFrame (np .random .randn (20000 , 100 ))
11- self .df2 = DataFrame (np .random .randn (20000 , 100 ))
12- self .df3 = DataFrame (np .random .randn (20000 , 100 ))
13- self .df4 = DataFrame (np .random .randn (20000 , 100 ))
14-
15- def time_eval_frame_add_all_threads (self ):
16- pd .eval ('df + df2 + df3 + df4' )
17-
18-
19- class eval_frame_add_one_thread (object ):
20- goal_time = 0.2
21-
22- def setup (self ):
23- self .df = DataFrame (np .random .randn (20000 , 100 ))
24- self .df2 = DataFrame (np .random .randn (20000 , 100 ))
25- self .df3 = DataFrame (np .random .randn (20000 , 100 ))
26- self .df4 = DataFrame (np .random .randn (20000 , 100 ))
27- expr .set_numexpr_threads (1 )
28-
29- def time_eval_frame_add_one_thread (self ):
30- pd .eval ('df + df2 + df3 + df4' )
31-
32-
33- class eval_frame_add_python (object ):
34- goal_time = 0.2
35-
36- def setup (self ):
37- self .df = DataFrame (np .random .randn (20000 , 100 ))
38- self .df2 = DataFrame (np .random .randn (20000 , 100 ))
39- self .df3 = DataFrame (np .random .randn (20000 , 100 ))
40- self .df4 = DataFrame (np .random .randn (20000 , 100 ))
41-
42- def time_eval_frame_add_python (self ):
43- pd .eval ('df + df2 + df3 + df4' , engine = 'python' )
44-
45-
46- class eval_frame_add_python_one_thread (object ):
47- goal_time = 0.2
48-
49- def setup (self ):
50- self .df = DataFrame (np .random .randn (20000 , 100 ))
51- self .df2 = DataFrame (np .random .randn (20000 , 100 ))
52- self .df3 = DataFrame (np .random .randn (20000 , 100 ))
53- self .df4 = DataFrame (np .random .randn (20000 , 100 ))
54- expr .set_numexpr_threads (1 )
55-
56- def time_eval_frame_add_python_one_thread (self ):
57- pd .eval ('df + df2 + df3 + df4' , engine = 'python' )
58-
59-
60- class eval_frame_and_all_threads (object ):
61- goal_time = 0.2
62-
63- def setup (self ):
64- self .df = DataFrame (np .random .randn (20000 , 100 ))
65- self .df2 = DataFrame (np .random .randn (20000 , 100 ))
66- self .df3 = DataFrame (np .random .randn (20000 , 100 ))
67- self .df4 = DataFrame (np .random .randn (20000 , 100 ))
68-
69- def time_eval_frame_and_all_threads (self ):
70- pd .eval ('(df > 0) & (df2 > 0) & (df3 > 0) & (df4 > 0)' )
71-
72-
73- class eval_frame_and_python_one_thread (object ):
74- goal_time = 0.2
75-
76- def setup (self ):
77- self .df = DataFrame (np .random .randn (20000 , 100 ))
78- self .df2 = DataFrame (np .random .randn (20000 , 100 ))
79- self .df3 = DataFrame (np .random .randn (20000 , 100 ))
80- self .df4 = DataFrame (np .random .randn (20000 , 100 ))
81- expr .set_numexpr_threads (1 )
82-
83- def time_eval_frame_and_python_one_thread (self ):
84- pd .eval ('(df > 0) & (df2 > 0) & (df3 > 0) & (df4 > 0)' , engine = 'python' )
85-
86-
87- class eval_frame_and_python (object ):
88- goal_time = 0.2
89-
90- def setup (self ):
91- self .df = DataFrame (np .random .randn (20000 , 100 ))
92- self .df2 = DataFrame (np .random .randn (20000 , 100 ))
93- self .df3 = DataFrame (np .random .randn (20000 , 100 ))
94- self .df4 = DataFrame (np .random .randn (20000 , 100 ))
95-
96- def time_eval_frame_and_python (self ):
97- pd .eval ('(df > 0) & (df2 > 0) & (df3 > 0) & (df4 > 0)' , engine = 'python' )
98-
99-
100- class eval_frame_chained_cmp_all_threads (object ):
101- goal_time = 0.2
102-
103- def setup (self ):
104- self .df = DataFrame (np .random .randn (20000 , 100 ))
105- self .df2 = DataFrame (np .random .randn (20000 , 100 ))
106- self .df3 = DataFrame (np .random .randn (20000 , 100 ))
107- self .df4 = DataFrame (np .random .randn (20000 , 100 ))
108-
109- def time_eval_frame_chained_cmp_all_threads (self ):
110- pd .eval ('df < df2 < df3 < df4' )
111-
112-
113- class eval_frame_chained_cmp_python_one_thread (object ):
114- goal_time = 0.2
9+ params = [['numexpr' , 'python' ], [1 , 'all' ]]
10+ param_names = ['engine' , 'threads' ]
11511
116- def setup (self ):
117- self .df = DataFrame (np .random .randn (20000 , 100 ))
118- self .df2 = DataFrame (np .random .randn (20000 , 100 ))
119- self .df3 = DataFrame (np .random .randn (20000 , 100 ))
120- self .df4 = DataFrame (np .random .randn (20000 , 100 ))
121- expr .set_numexpr_threads (1 )
122-
123- def time_eval_frame_chained_cmp_python_one_thread (self ):
124- pd .eval ('df < df2 < df3 < df4' , engine = 'python' )
125-
126-
127- class eval_frame_chained_cmp_python (object ):
128- goal_time = 0.2
129-
130- def setup (self ):
12+ def setup (self , engine , threads ):
13113 self .df = DataFrame (np .random .randn (20000 , 100 ))
13214 self .df2 = DataFrame (np .random .randn (20000 , 100 ))
13315 self .df3 = DataFrame (np .random .randn (20000 , 100 ))
13416 self .df4 = DataFrame (np .random .randn (20000 , 100 ))
13517
136- def time_eval_frame_chained_cmp_python ( self ) :
137- pd . eval ( 'df < df2 < df3 < df4' , engine = 'python' )
18+ if threads == 1 :
19+ expr . set_numexpr_threads ( 1 )
13820
21+ def time_add (self , engine , threads ):
22+ df , df2 , df3 , df4 = self .df , self .df2 , self .df3 , self .df4
23+ pd .eval ('df + df2 + df3 + df4' , engine = engine )
13924
140- class eval_frame_mult_all_threads (object ):
141- goal_time = 0.2
25+ def time_and (self , engine , threads ):
26+ df , df2 , df3 , df4 = self .df , self .df2 , self .df3 , self .df4
27+ pd .eval ('(df > 0) & (df2 > 0) & (df3 > 0) & (df4 > 0)' , engine = engine )
14228
143- def setup (self ):
144- self .df = DataFrame (np .random .randn (20000 , 100 ))
145- self .df2 = DataFrame (np .random .randn (20000 , 100 ))
146- self .df3 = DataFrame (np .random .randn (20000 , 100 ))
147- self .df4 = DataFrame (np .random .randn (20000 , 100 ))
148-
149- def time_eval_frame_mult_all_threads (self ):
150- pd .eval ('df * df2 * df3 * df4' )
151-
152-
153- class eval_frame_mult_one_thread (object ):
154- goal_time = 0.2
155-
156- def setup (self ):
157- self .df = DataFrame (np .random .randn (20000 , 100 ))
158- self .df2 = DataFrame (np .random .randn (20000 , 100 ))
159- self .df3 = DataFrame (np .random .randn (20000 , 100 ))
160- self .df4 = DataFrame (np .random .randn (20000 , 100 ))
161- expr .set_numexpr_threads (1 )
162-
163- def time_eval_frame_mult_one_thread (self ):
164- pd .eval ('df * df2 * df3 * df4' )
165-
166-
167- class eval_frame_mult_python (object ):
168- goal_time = 0.2
169-
170- def setup (self ):
171- self .df = DataFrame (np .random .randn (20000 , 100 ))
172- self .df2 = DataFrame (np .random .randn (20000 , 100 ))
173- self .df3 = DataFrame (np .random .randn (20000 , 100 ))
174- self .df4 = DataFrame (np .random .randn (20000 , 100 ))
175-
176- def time_eval_frame_mult_python (self ):
177- pd .eval ('df * df2 * df3 * df4' , engine = 'python' )
178-
179-
180- class eval_frame_mult_python_one_thread (object ):
181- goal_time = 0.2
182-
183- def setup (self ):
184- self .df = DataFrame (np .random .randn (20000 , 100 ))
185- self .df2 = DataFrame (np .random .randn (20000 , 100 ))
186- self .df3 = DataFrame (np .random .randn (20000 , 100 ))
187- self .df4 = DataFrame (np .random .randn (20000 , 100 ))
188- expr .set_numexpr_threads (1 )
29+ def time_chained_cmp (self , engine , threads ):
30+ df , df2 , df3 , df4 = self .df , self .df2 , self .df3 , self .df4
31+ pd .eval ('df < df2 < df3 < df4' , engine = engine )
18932
190- def time_eval_frame_mult_python_one_thread (self ):
191- pd .eval ('df * df2 * df3 * df4' , engine = 'python' )
33+ def time_mult (self , engine , threads ):
34+ df , df2 , df3 , df4 = self .df , self .df2 , self .df3 , self .df4
35+ pd .eval ('df * df2 * df3 * df4' , engine = engine )
19236
19337
19438class query_datetime_index (object ):
@@ -203,6 +47,7 @@ def setup(self):
20347 self .df = DataFrame ({'a' : np .random .randn (self .N ), }, index = self .index )
20448
20549 def time_query_datetime_index (self ):
50+ ts = self .ts
20651 self .df .query ('index < @ts' )
20752
20853
@@ -218,6 +63,7 @@ def setup(self):
21863 self .df = DataFrame ({'dates' : self .s .values , })
21964
22065 def time_query_datetime_series (self ):
66+ ts = self .ts
22167 self .df .query ('dates < @ts' )
22268
22369
@@ -236,4 +82,5 @@ def setup(self):
23682 self .max_val = self .df ['a' ].max ()
23783
23884 def time_query_with_boolean_selection (self ):
239- self .df .query ('(a >= @min_val) & (a <= @max_val)' )
85+ min_val , max_val = self .min_val , self .max_val
86+ self .df .query ('(a >= @min_val) & (a <= @max_val)' )
0 commit comments