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.
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
)