I just added ticket 874 http://scipy.org/scipy/numpy/ticket/874 which on my machine takes the import time from 0.15 seconds down to 0.093 seconds. A bit over a month ago it was about 0.33 seconds. :) The biggest trick I didn't apply was to defer importing the re module, and only compile the patterns when they are needed. That would save about 0.013 seconds, but the result would be rather fragile as people rarely consider deferring pattern definitions. I'll submit a patch for it, expected it to be rejected. ;) I noticed that two places import the standard Python math library, which doesn't seem necessary: numpy/lib/__init__.py: import math __all__ = ['emath','math'] 'math' is never used in that module. It does mean that 'numpy.math' is the same as Python's math module, which I didn't expect. I didn't understand why it was explicitly in the __all_ list so I didn't change it. All tests pass without it. numpy/lib/index_tricks.py: import math .. size.append(math.ceil((key[k].stop - start)/ (step*1.0))) Wouldn't numpy.ceil be okay here? All tests pass when I use numpy.ceil. This would save about 0.002 seconds, so it's a small improvement. I think there's a subtle and minor bug in _datasource. def __del__(self): # Remove temp directories if self._istmpdest: rmtree(self._destpath) Is 'rmtree' guaranteed to be present in the module scope if the object is garbage collected during Python shutdown? Andrew dalke@dalkescientific.com