Using take here allows to go a bit faster

```
In [13]: y = np.random.uniform(size=(10000, 3))

In [14]: timeit np.arange(3).take(y.argmax(axis=1), mode="clip")
10000 loops, best of 3: 107 us per loop

In [15]: timeit np.arange(3)[y.argmax(axis=1)]
10000 loops, best of 3: 143 us per loop
```