1- from .pandas_vb_common import *
1+ import numpy as np
2+ from pandas import DataFrame , Series , date_range
23try :
34 import pandas .core .computation .expressions as expr
45except ImportError :
56 import pandas .computation .expressions as expr
67
78
89class Ops (object ):
10+
911 goal_time = 0.2
1012
1113 params = [[True , False ], ['default' , 1 ]]
1214 param_names = ['use_numexpr' , 'threads' ]
1315
1416 def setup (self , use_numexpr , threads ):
17+ np .random .seed (1234 )
1518 self .df = DataFrame (np .random .randn (20000 , 100 ))
1619 self .df2 = DataFrame (np .random .randn (20000 , 100 ))
1720
@@ -20,94 +23,88 @@ def setup(self, use_numexpr, threads):
2023 if not use_numexpr :
2124 expr .set_use_numexpr (False )
2225
23-
2426 def time_frame_add (self , use_numexpr , threads ):
25- ( self .df + self .df2 )
27+ self .df + self .df2
2628
2729 def time_frame_mult (self , use_numexpr , threads ):
28- ( self .df * self .df2 )
30+ self .df * self .df2
2931
3032 def time_frame_multi_and (self , use_numexpr , threads ):
31- self .df [(( self .df > 0 ) & (self .df2 > 0 ) )]
33+ self .df [(self .df > 0 ) & (self .df2 > 0 )]
3234
3335 def time_frame_comparison (self , use_numexpr , threads ):
34- ( self .df > self .df2 )
36+ self .df > self .df2
3537
3638 def teardown (self , use_numexpr , threads ):
3739 expr .set_use_numexpr (True )
3840 expr .set_numexpr_threads ()
3941
4042
4143class Ops2 (object ):
44+
4245 goal_time = 0.2
4346
4447 def setup (self ):
45- self .df = DataFrame (np .random .randn (1000 , 1000 ))
46- self .df2 = DataFrame (np .random .randn (1000 , 1000 ))
48+ N = 10 ** 3
49+ np .random .seed (1234 )
50+ self .df = DataFrame (np .random .randn (N , N ))
51+ self .df2 = DataFrame (np .random .randn (N , N ))
4752
48- self .df_int = DataFrame (
49- np .random .random_integers (np .iinfo (np .int16 ).min ,
50- np .iinfo (np .int16 ).max ,
51- size = (1000 , 1000 )))
52- self .df2_int = DataFrame (
53- np .random .random_integers (np .iinfo (np .int16 ).min ,
54- np .iinfo (np .int16 ).max ,
55- size = (1000 , 1000 )))
53+ self .df_int = DataFrame (np .random .randint (np .iinfo (np .int16 ).min ,
54+ np .iinfo (np .int16 ).max ,
55+ size = (N , N )))
56+ self .df2_int = DataFrame (np .random .randint (np .iinfo (np .int16 ).min ,
57+ np .iinfo (np .int16 ).max ,
58+ size = (N , N )))
5659
57- ## Division
60+ # Division
5861
5962 def time_frame_float_div (self ):
60- ( self .df // self .df2 )
63+ self .df // self .df2
6164
6265 def time_frame_float_div_by_zero (self ):
63- ( self .df / 0 )
66+ self .df / 0
6467
6568 def time_frame_float_floor_by_zero (self ):
66- ( self .df // 0 )
69+ self .df // 0
6770
6871 def time_frame_int_div_by_zero (self ):
69- ( self .df_int / 0 )
72+ self .df_int / 0
7073
71- ## Modulo
74+ # Modulo
7275
7376 def time_frame_int_mod (self ):
74- ( self .df / self .df2 )
77+ self .df_int % self .df2_int
7578
7679 def time_frame_float_mod (self ):
77- ( self .df / self .df2 )
80+ self .df % self .df2
7881
7982
8083class Timeseries (object ):
84+
8185 goal_time = 0.2
8286
83- def setup (self ):
84- self .N = 1000000
87+ params = [None , 'US/Eastern' ]
88+ param_names = ['tz' ]
89+
90+ def setup (self , tz ):
91+ self .N = 10 ** 6
8592 self .halfway = ((self .N // 2 ) - 1 )
86- self .s = Series (date_range ('20010101' , periods = self .N , freq = 'T' ))
93+ self .s = Series (date_range ('20010101' , periods = self .N , freq = 'T' ,
94+ tz = tz ))
8795 self .ts = self .s [self .halfway ]
8896
89- self .s2 = Series (date_range ('20010101' , periods = self .N , freq = 's' ))
97+ self .s2 = Series (date_range ('20010101' , periods = self .N , freq = 's' ,
98+ tz = tz ))
9099
91- def time_series_timestamp_compare (self ):
92- ( self .s <= self .ts )
100+ def time_series_timestamp_compare (self , tz ):
101+ self .s <= self .ts
93102
94- def time_timestamp_series_compare (self ):
95- ( self .ts >= self .s )
103+ def time_timestamp_series_compare (self , tz ):
104+ self .ts >= self .s
96105
97- def time_timestamp_ops_diff1 (self ):
106+ def time_timestamp_ops_diff (self , tz ):
98107 self .s2 .diff ()
99108
100- def time_timestamp_ops_diff2 (self ):
101- (self .s - self .s .shift ())
102-
103-
104-
105- class TimeseriesTZ (Timeseries ):
106-
107- def setup (self ):
108- self .N = 1000000
109- self .halfway = ((self .N // 2 ) - 1 )
110- self .s = Series (date_range ('20010101' , periods = self .N , freq = 'T' , tz = 'US/Eastern' ))
111- self .ts = self .s [self .halfway ]
112-
113- self .s2 = Series (date_range ('20010101' , periods = self .N , freq = 's' , tz = 'US/Eastern' ))
109+ def time_timestamp_ops_diff_with_shift (self , tz ):
110+ self .s - self .s .shift ()
0 commit comments