Home > OS >  replace element in numpy array pending a different element's value
replace element in numpy array pending a different element's value

Time:06-05

I have the following numpy array (as an example):

my_array = [[3, 7, 0]
            [20, 4, 0]
            [7, 54, 0]]

I want to replace the 0's in the 3rd column of each row with a value of 5 only if the first index is odd. So the expected outcome would be:

my_array = [[3, 7, 5]
            [20, 4, 0]
            [7, 54, 5]]

I tried numpy.where and numpy.place, but couldn't get the expected results.

Is there an elegant way to do this with numpy functions?

CodePudding user response:

you can do this by indexing as:

my_array[my_array[:, 0] % 2 != 0, 2] = 5

# my_array[:, 0] % 2 != 0   --- Boolean shows modifying rows --> [ True False  True]
  • Related