Skip to content

Commit e5dcdd1

Browse files
authored
ASV: dt64arr_to_periodarr (#35244)
1 parent 93a4383 commit e5dcdd1

File tree

1 file changed

+42
-18
lines changed

1 file changed

+42
-18
lines changed

asv_bench/benchmarks/tslibs/period.py

+42-18
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,12 @@
99

1010
from pandas.tseries.frequencies import to_offset
1111

12-
from .tslib import _sizes
12+
from .tslib import _sizes, _tzs
13+
14+
try:
15+
from pandas._libs.tslibs.vectorized import dt64arr_to_periodarr
16+
except ImportError:
17+
from pandas._libs.tslibs.period import dt64arr_to_periodarr
1318

1419

1520
class PeriodProperties:
@@ -75,26 +80,29 @@ def time_period_constructor(self, freq, is_offset):
7580
Period("2012-06-01", freq=freq)
7681

7782

83+
_freq_ints = [
84+
1000,
85+
1011, # Annual - November End
86+
2000,
87+
2011, # Quarterly - November End
88+
3000,
89+
4000,
90+
4006, # Weekly - Saturday End
91+
5000,
92+
6000,
93+
7000,
94+
8000,
95+
9000,
96+
10000,
97+
11000,
98+
12000,
99+
]
100+
101+
78102
class TimePeriodArrToDT64Arr:
79103
params = [
80104
_sizes,
81-
[
82-
1000,
83-
1011, # Annual - November End
84-
2000,
85-
2011, # Quarterly - November End
86-
3000,
87-
4000,
88-
4006, # Weekly - Saturday End
89-
5000,
90-
6000,
91-
7000,
92-
8000,
93-
9000,
94-
10000,
95-
11000,
96-
12000,
97-
],
105+
_freq_ints,
98106
]
99107
param_names = ["size", "freq"]
100108

@@ -104,3 +112,19 @@ def setup(self, size, freq):
104112

105113
def time_periodarray_to_dt64arr(self, size, freq):
106114
periodarr_to_dt64arr(self.i8values, freq)
115+
116+
117+
class TimeDT64ArrToPeriodArr:
118+
params = [
119+
_sizes,
120+
_freq_ints,
121+
_tzs,
122+
]
123+
param_names = ["size", "freq", "tz"]
124+
125+
def setup(self, size, freq, tz):
126+
arr = np.arange(10, dtype="i8").repeat(size // 10)
127+
self.i8values = arr
128+
129+
def time_dt64arr_to_periodarr(self, size, freq, tz):
130+
dt64arr_to_periodarr(self.i8values, freq, tz)

0 commit comments

Comments
 (0)