Skip to content

Commit

Permalink
ENH: micro perf tweaks to speed up DataFrame constructor, unit testing
Browse files Browse the repository at this point in the history
  • Loading branch information
wesm committed Nov 23, 2012
1 parent 2b06aa2 commit 4a200b8
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 9 deletions.
8 changes: 5 additions & 3 deletions pandas/core/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -585,10 +585,12 @@ def _is_bool_indexer(key):

return False


def _default_index(n):
from pandas.core.index import Index
return Index(np.arange(n))
from pandas.core.index import Int64Index
values = np.arange(n)
result = values.view(Int64Index)
result.name = None
return result


def ensure_float(arr):
Expand Down
3 changes: 1 addition & 2 deletions pandas/core/frame.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@
from pandas.core.generic import NDFrame
from pandas.core.index import Index, MultiIndex, _ensure_index
from pandas.core.indexing import _NDFrameIndexer, _maybe_droplevels
from pandas.core.internals import (BlockManager, make_block, form_blocks,
IntBlock)
from pandas.core.internals import BlockManager, make_block, form_blocks
from pandas.core.series import Series, _radd_compat, _dtype_from_scalar
from pandas.compat.scipy import scoreatpercentile as _quantile
from pandas.util import py3compat
Expand Down
4 changes: 2 additions & 2 deletions pandas/core/generic.py
Original file line number Diff line number Diff line change
Expand Up @@ -482,8 +482,8 @@ def __init__(self, data, axes=None, copy=False, dtype=None):
for i, ax in enumerate(axes):
data = data.reindex_axis(ax, axis=i)

self._data = data
self._item_cache = {}
object.__setattr__(self, '_data', data)
object.__setattr__(self, '_item_cache', {})

def astype(self, dtype):
"""
Expand Down
3 changes: 1 addition & 2 deletions pandas/util/testing.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
from pandas import bdate_range
from pandas.tseries.index import DatetimeIndex
from pandas.tseries.period import PeriodIndex
from pandas.tseries.interval import IntervalIndex

Index = index.Index
Series = series.Series
Expand Down Expand Up @@ -96,7 +95,7 @@ def assert_almost_equal(a, b):

if isiterable(a):
np.testing.assert_(isiterable(b))
np.testing.assert_equal(len(a), len(b))
assert(len(a) == len(b))
if np.array_equal(a, b):
return True
else:
Expand Down
8 changes: 8 additions & 0 deletions vb_suite/ctors.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,11 @@
series_constructor_ndarray = \
Benchmark("Series(data, index=index)", setup=setup,
name='series_constructor_ndarray')

setup = common_setup + """
arr = np.random.randn(100, 100)
"""

frame_constructor_ndarray = \
Benchmark("DataFrame(arr)", setup=setup,
name='frame_constructor_ndarray')

0 comments on commit 4a200b8

Please sign in to comment.