From 87dd02069122dd423f5dce9177eb1e23edbb2039 Mon Sep 17 00:00:00 2001 From: Brock Date: Sat, 27 Jun 2020 13:37:35 -0700 Subject: [PATCH 1/2] PERF: avoid duplicate is_single_block check --- pandas/core/internals/managers.py | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/pandas/core/internals/managers.py b/pandas/core/internals/managers.py index 843e7ce40fef8..87117f5653443 100644 --- a/pandas/core/internals/managers.py +++ b/pandas/core/internals/managers.py @@ -805,17 +805,19 @@ def as_array( # mutating the original object copy = copy or na_value is not lib.no_default - if self._is_single_block and self.blocks[0].is_extension: - # Avoid implicit conversion of extension blocks to object - arr = ( - self.blocks[0] - .values.to_numpy(dtype=dtype, na_value=na_value) - .reshape(self.blocks[0].shape) - ) - elif self._is_single_block: - arr = np.asarray(self.blocks[0].get_values()) - if dtype: - arr = arr.astype(dtype, copy=False) + if self._is_single_block: + blk = self.blocks[0] + if blk.is_extension: + # Avoid implicit conversion of extension blocks to object + arr = ( + blk + .values.to_numpy(dtype=dtype, na_value=na_value) + .reshape(blk.shape) + ) + else: + arr = np.asarray(blk.get_values()) + if dtype: + arr = arr.astype(dtype, copy=False) else: arr = self._interleave(dtype=dtype, na_value=na_value) # The underlying data was copied within _interleave From 05fbdaf2343083dfb117e10f0fdf7fc020bff2c4 Mon Sep 17 00:00:00 2001 From: Brock Date: Sat, 27 Jun 2020 14:05:33 -0700 Subject: [PATCH 2/2] blackify --- pandas/core/internals/managers.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pandas/core/internals/managers.py b/pandas/core/internals/managers.py index 87117f5653443..b2f2277d9a7dc 100644 --- a/pandas/core/internals/managers.py +++ b/pandas/core/internals/managers.py @@ -809,10 +809,8 @@ def as_array( blk = self.blocks[0] if blk.is_extension: # Avoid implicit conversion of extension blocks to object - arr = ( - blk - .values.to_numpy(dtype=dtype, na_value=na_value) - .reshape(blk.shape) + arr = blk.values.to_numpy(dtype=dtype, na_value=na_value).reshape( + blk.shape ) else: arr = np.asarray(blk.get_values())