You can rewrite it as 

```
        return np.array([classes[y.indices[start + y.data[start:end].argmax()]]
                         for start, end in zip(y.indptr[:-1],   y.indptr[1:])])
```

Note that this might fails if you have only zeros for one row
```
In [6]: _inverse_binarize_multiclass(csr_matrix([[0, 1, 0.5], [0, 0, 0]]), np.arange(3) )
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-6-fc43e16d705d> in <module>()
----> 1 _inverse_binarize_multiclass(csr_matrix([[0, 1, 0.5], [0, 0, 0]]), np.arange(3) )

/Users/ajoly/git/scikit-learn/sklearn/preprocessing/label.pyc in _inverse_binarize_multiclass(y, classes)
    532                                            y.data[start:end].argmax()]]
    533                          for start, end in zip(y.indptr[:-1],
--> 534                                                y.indptr[1:])])
    535     else:
    536         return classes[y.argmax(axis=1)]

ValueError: attempt to get argmax of an empty sequence```