  # numpy.argmin () in Python

argmin | NumPy | Python Methods and Functions

numpy.argmin (array, axis = None, out = None): returns the indices of the minimum element in an array on a specific axis.
Parameters:

`  array:  Input array to work on  axis:  [int, optional] Along a specified axis like 0 or 1  out:  [array optional] Provides a feature to insert output to the  out  array and it should be of appropriate shape and dtype `

Return:

` Array of indices into the array with same shape as array.shape with the dimension along axis removed. `

Code 1 :

 ` # Python program illustrating ` ` # argmin () work `   ` import ` ` numpy as geek `   ` # Working with 1D array ` ` a rray ` ` = ` ` geek.arange (` ` 8 ` `) ` ` print ` ` (` ` "INPUT ARRAY:" ` `, array) `     ` # returns the indexes of the min element ` ` # by indicators ` ` print ` ` (` ` "Indices of min element: "` `, geek.argmin (array, axis ` ` = ` ` 0 ` `)) `

Output:

` INPUT ARRAY: [0 1 2 3 4 5 6 7] Indices of min element: 0 `

Code 2:

 ` # Python program illustrating ` ` # argmin () work `   ` import ` ` numpy as geek `   ` # Working with 2D array ` ` array ` ` = ` ` geek.random.randint (` ` 16 ` `, size ` ` = ` ` (` ` 4 ` `, ` ` 4 ` `)) ` ` print ` ` (` ` "INPUT ARRAY:" ` `, array) `   ` # returns min element indices ` ` # by metrics `   ` "" "` ` ` ` [[8 13 5 0] ` ` [0 2 5 3] ` ` [10 7 15 15] ` ` [3 11 4 12]] ` ` ^ ^ ^ ^ ` ` 0 2 4 0 - element ` ` 1 1 3 0 - indicators ` ` "" "` ` print ` ` (` ` "Indices of min element: "` `, geek.argmin (array, axis ` ` = ` ` 0 ` `)) `

Output:

` INPUT ARRAY: [[8 13 5 0] [0 2 5 3] [10 7 15 15] [3 11 4 12]] Indices of min element: [1 1 3 0] `

Code 3:

Output:

` array: [[0 1 2 3 4] [5 6 7 8 9]] array: [[10 1 2 3 4] [5 1 7 8 9]] array: 1 min ELEMENT INDICES: [1 0 0 0 0] `

argmin.html # numpy.argmin> https://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.argmin.html#numpy.argmin

Notes:
These codes will not work for online IDs. Please run them on your systems to see how they work

## numpy.argmin () in Python: StackOverflow Questions

``````import numpy as np
def find_nearest(array, value):
array = np.asarray(array)
idx = (np.abs(array - value)).argmin()
return array[idx]

array = np.random.random(10)
print(array)
# [ 0.21069679  0.61290182  0.63425412  0.84635244  0.91599191  0.00213826
#   0.17104965  0.56874386  0.57319379  0.28719469]

value = 0.5

print(find_nearest(array, value))
# 0.568743859261
``````

Say that you have a list `values = [3,6,1,5]`, and need the index of the smallest element, i.e. `index_min = 2` in this case.

Avoid the solution with `itemgetter()` presented in the other answers, and use instead

``````index_min = min(range(len(values)), key=values.__getitem__)
``````

because it doesn"t require to `import operator` nor to use `enumerate`, and it is always faster(benchmark below) than a solution using `itemgetter()`.

If you are dealing with numpy arrays or can afford `numpy` as a dependency, consider also using

``````import numpy as np
index_min = np.argmin(values)
``````

This will be faster than the first solution even if you apply it to a pure Python list if:

• it is larger than a few elements (about 2**4 elements on my machine)
• you can afford the memory copy from a pure list to a `numpy` array

as this benchmark points out: I have run the benchmark on my machine with python 2.7 for the two solutions above (blue: pure python, first solution) (red, numpy solution) and for the standard solution based on `itemgetter()` (black, reference solution). The same benchmark with python 3.5 showed that the methods compare exactly the same of the python 2.7 case presented above

## Books for developers

 ` # Python program illustrating ` ` # argmin () work `   ` import ` ` numpy as geek `   ` # Working with 2D array ` ` array ` ` = ` ` geek.arange (` ` 10 ` `). Reshape (` ` 2 ` `, ` ` 5 ` `) ` ` print ` ` (` ` "array:" ` `, array) `   ` array [` ` 0 ` `] [` ` 0 ` `] ` ` = ` ` 10 ` ` array [` ` 1 ` `] [` ` 1 ` `] ` ` = ` ` 1 ` ` array [` ` 0 ` `] [` ` 1 ` `] ` ` = ` ` 1 ` ` print ` ` (` ` "array: "` `, array) ` ` `  ` # Returns the min element ` ` print ` ` (` ` "array:" ` `, geek.argmin (array)) `   ` # First occurrence of min element given ` ` print ` ` ( ` ` "min ELEMENT INDICES:" ` `, geek.argmin (array, axis ` ` = ` ` 0 ` `)) `