Ответ 1
Вы используете списки python вместо массивов numpy. Попробуйте это вместо этого:
import numpy as np
m1 = np.array([0,1,1,3])
m2 = np.array([0,0,1,1])
mask = (m1 == 1) & (m2 == 1)
data[mask]
# returns array([30])
В вашем примере, когда m1
был списком, m1 == 1
оценивается как False
(то же самое для m2
), поэтому маска была False
и data[False] = data[0] = 10
.