m1 = [0,1,1,3]
m2 = [0,0,1,1]
data = [10,20,30,40]
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情:
mask = (m1 == 1) & (m2 == 1)
data[mask] #should return 30
Run Code Online (Sandbox Code Playgroud)
请注意,此示例会导致错误
tia*_*ago 21
您正在使用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])
Run Code Online (Sandbox Code Playgroud)
在你的例子中,什么时候m1是一个列表,m1 == 1被评估为False(相同m2),所以mask是False和data[False] = data[0] = 10.
| 归档时间: |
|
| 查看次数: |
16176 次 |
| 最近记录: |