In my post Computing argmax fast in Python, I reported that Python has no builtin function to compute argmax, the position of a maximal value. I provided one such function and asked people to improve my solution. Here are the results:

argmax function | running time |

array.index(max(array)) | 0.1 s |

max(izip(array, xrange(len(array))))[1] | 0.2 s |

**Conclusion**: array.index(max(array)) is simpler and faster.

**Update**: Please see The language interpreters are the new machines.

Daniel Lemire, "Fast argmax in Python," in *Daniel Lemire's blog*, December 17, 2008.

Complexity of these operations with regard to array length would be more interesting. I think that your conclusion is a bit too wide.

They all have linear complexity.

Interesting!

The first solution is amazing!

What about:

max(range(len(array)), key=lambda x: array[x])

Slower than

`a.index(max(a))`

. (Tested by ipython`%timeit`

)