F L
F L

Reputation: 183

Replace value in array with condition

I have this simplified program to replace values in array which fulfill the conditions:

formula1=2*2
formula2=5*2
formula3=4*4

array = np.random.rand(2,4,10)
for n,i in enumerate(array):
    if i>0.5: #find value in array with this condition
        formula = formula1
        array[n] = array[n]*formula #replace the found value with this value
    elif i <0.1:
        formula = formula2
        array[n] = array[n]*formula
    else:
        formula = formula3
        array[n] = array[n]*formula
print array    

It resulted in error message:'The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()'. Any suggestion?

Upvotes: 1

Views: 1543

Answers (1)

Jacques Gaudin
Jacques Gaudin

Reputation: 16958

To enumerate an array, you can use np.ndenumerate (documentation here):

for n, i in np.ndenumerate(array):
    ...

Upvotes: 3

Related Questions