m1 = [0,1,1,3]
m2 = [0,0,1,1]
data = [10,20,30,40]
私はこのようなことをしたい:
mask = (m1 == 1) & (m2 == 1)
data[mask] #should return 30
この例ではエラーが発生することに注意してください
numpy 配列の代わりに python リストを使用しています。代わりにこれを試してください:
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])
あなたの例では、 when m1
was a listは( と同じ)m1 == 1
として評価されるため、マスクはandでした。False
m2
False
data[False] = data[0] = 10