np.searchsorted fails on Index due to Index.searchsorted not taking a sorter argument. · Issue #12238 · pandas-dev/pandas (original) (raw)

import numpy, pandas ix = pandas.Float64Index([1,2,3]) numpy.searchsorted(ix, 2.5)

leads to

TypeError
..../site-packages/numpy/core/fromnumeric.pyc in searchsorted(a, v, side, sorter)
   1086     except AttributeError:
   1087         return _wrapit(a, 'searchsorted', v, side, sorter)
-> 1088     return searchsorted(v, side, sorter)

TypeError: searchsorted() takes at most 3 arguments (4 given)

The reason is that the interface of Index.searchsorted(self, key, side='left') doesn't match numpy.ndarray.searchsorted(self, v, side='left', sorter=None) and numpy.searchsorted is implemented as

def searchsorted(a, v, side='left', sorter=None):
    try:
        searchsorted = a.searchsorted
    except AttributeError:
        return _wrapit(a, 'searchsorted', v, side, sorter)
    return searchsorted(v, side, sorter)

This is pandas 0.17.1 (but the relevant code seems to appear in master) and numpy 1.10.4 .