Skip to content

Commit b1a104e

Browse files
jorisvandenbosschejreback
authored andcommitted
ASV: add benchmarks for Series.array and extract_array (#31277)
1 parent c02302d commit b1a104e

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

asv_bench/benchmarks/attrs_caching.py

+33
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
11
import numpy as np
22

3+
import pandas as pd
34
from pandas import DataFrame
45

56
try:
67
from pandas.util import cache_readonly
78
except ImportError:
89
from pandas.util.decorators import cache_readonly
910

11+
try:
12+
from pandas.core.construction import extract_array
13+
except ImportError:
14+
extract_array = None
15+
1016

1117
class DataFrameAttributes:
1218
def setup(self):
@@ -20,6 +26,33 @@ def time_set_index(self):
2026
self.df.index = self.cur_index
2127

2228

29+
class SeriesArrayAttribute:
30+
31+
params = [["numeric", "object", "category", "datetime64", "datetime64tz"]]
32+
param_names = ["dtype"]
33+
34+
def setup(self, dtype):
35+
if dtype == "numeric":
36+
self.series = pd.Series([1, 2, 3])
37+
elif dtype == "object":
38+
self.series = pd.Series(["a", "b", "c"], dtype=object)
39+
elif dtype == "category":
40+
self.series = pd.Series(["a", "b", "c"], dtype="category")
41+
elif dtype == "datetime64":
42+
self.series = pd.Series(pd.date_range("2013", periods=3))
43+
elif dtype == "datetime64tz":
44+
self.series = pd.Series(pd.date_range("2013", periods=3, tz="UTC"))
45+
46+
def time_array(self, dtype):
47+
self.series.array
48+
49+
def time_extract_array(self, dtype):
50+
extract_array(self.series)
51+
52+
def time_extract_array_numpy(self, dtype):
53+
extract_array(self.series, extract_numpy=True)
54+
55+
2356
class CacheReadonly:
2457
def setup(self):
2558
class Foo:

0 commit comments

Comments
 (0)