> > +                newX.append(1. * (np.searchsorted(self.sort_X_[:,j], X[:,j], side='left') + np.searchsorted(self.sort_X_[:,j], X[:,j], side='right')) / (2 * self.sort_X_.shape[0]))

> ah, pep8. what in particular do you think my code violates?

A whitespace after comas, and the fact that this line seems too long to
me (max = 79 chars)