1
- from .pandas_vb_common import *
1
+ import numpy as np
2
+ from pandas import DataFrame , Series , date_range
2
3
try :
3
4
import pandas .core .computation .expressions as expr
4
5
except ImportError :
5
6
import pandas .computation .expressions as expr
6
7
7
8
8
9
class Ops (object ):
10
+
9
11
goal_time = 0.2
10
12
11
13
params = [[True , False ], ['default' , 1 ]]
12
14
param_names = ['use_numexpr' , 'threads' ]
13
15
14
16
def setup (self , use_numexpr , threads ):
17
+ np .random .seed (1234 )
15
18
self .df = DataFrame (np .random .randn (20000 , 100 ))
16
19
self .df2 = DataFrame (np .random .randn (20000 , 100 ))
17
20
@@ -20,94 +23,88 @@ def setup(self, use_numexpr, threads):
20
23
if not use_numexpr :
21
24
expr .set_use_numexpr (False )
22
25
23
-
24
26
def time_frame_add (self , use_numexpr , threads ):
25
- ( self .df + self .df2 )
27
+ self .df + self .df2
26
28
27
29
def time_frame_mult (self , use_numexpr , threads ):
28
- ( self .df * self .df2 )
30
+ self .df * self .df2
29
31
30
32
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 )]
32
34
33
35
def time_frame_comparison (self , use_numexpr , threads ):
34
- ( self .df > self .df2 )
36
+ self .df > self .df2
35
37
36
38
def teardown (self , use_numexpr , threads ):
37
39
expr .set_use_numexpr (True )
38
40
expr .set_numexpr_threads ()
39
41
40
42
41
43
class Ops2 (object ):
44
+
42
45
goal_time = 0.2
43
46
44
47
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 ))
47
52
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 )))
56
59
57
- ## Division
60
+ # Division
58
61
59
62
def time_frame_float_div (self ):
60
- ( self .df // self .df2 )
63
+ self .df // self .df2
61
64
62
65
def time_frame_float_div_by_zero (self ):
63
- ( self .df / 0 )
66
+ self .df / 0
64
67
65
68
def time_frame_float_floor_by_zero (self ):
66
- ( self .df // 0 )
69
+ self .df // 0
67
70
68
71
def time_frame_int_div_by_zero (self ):
69
- ( self .df_int / 0 )
72
+ self .df_int / 0
70
73
71
- ## Modulo
74
+ # Modulo
72
75
73
76
def time_frame_int_mod (self ):
74
- ( self .df / self .df2 )
77
+ self .df_int % self .df2_int
75
78
76
79
def time_frame_float_mod (self ):
77
- ( self .df / self .df2 )
80
+ self .df % self .df2
78
81
79
82
80
83
class Timeseries (object ):
84
+
81
85
goal_time = 0.2
82
86
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
85
92
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 ))
87
95
self .ts = self .s [self .halfway ]
88
96
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 ))
90
99
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
93
102
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
96
105
97
- def time_timestamp_ops_diff1 (self ):
106
+ def time_timestamp_ops_diff (self , tz ):
98
107
self .s2 .diff ()
99
108
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