This is probably due to the fact that you mix getters and setters , preventing backpropagagation .
This is because you are using mark1as an indexer:
>>> mask1
array([False, True, False, False, True, False], dtype=bool)
, a[mask1] = 100, , mask1 ,
>>> a
array([ 1, 100, 3, 4, 100, 6])
, "", , a.
a[mask1][mask2] = 100 . , :
temp = a[mask1] #getter
temp[mask2] = 2#setter
temp, , , "backpropagated", a. temp ( , python -).
: , , : if temp - , , , . .