Lets say we have this array and I want to replace the minimum value with number 50
import numpy as np
numbers = np.arange(20)
numbers[numbers.min()] = 50
So the output is [50,1,2,3,....20]
But now I have problems with this:
numbers = np.arange(20).reshape(5,4)
numbers[numbers.min(axis=1)]=50
to get [[50,1,2,3],[50,5,6,7],....]
However I get this error:
IndexError: index 8 is out of bounds for axis 0 with size 5 ....
Any ideas for help?
numbers.min()
returns the minimum value not the index of the array. In your first example, it works because the index and the value of the array are the same. you need to find the index of the minimum number. – Cancannumbers.min()
returns the minimum value in the numpy array, not the index. It works only if you have an array with strictly consecutively increasing values. Better use a function which returns the location of minimum value and then use it to replace with new value. – Flickinger