maybe something like this:
``` python
# ...
else:
   log_proba[:, estimator.classes_] = np.logaddexp(log_proba[:, estimator.classes_],
                                                   log_proba_estimator[:, range(len(estimator.classes_))]
```
The benefit is that then the loop happens in C.  And I'm pretty sure that the fancy indexing expressions return a view, so there's no additional memory copying...