如何结合多个numpy蒙版 [英] How to combine multiple numpy masks

查看:98
本文介绍了如何结合多个numpy蒙版的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

请注意,此示例导致错误

Note, this example results in an error

推荐答案

您正在使用python列表而不是numpy数组.尝试以下方法:

You are using python lists instead of numpy arrays. Try this instead:

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相同),因此掩码分别为Falsedata[False] = data[0] = 10.

In your example, when m1 was a list, m1 == 1 is evaluated as False (the same for m2), so mask was False and data[False] = data[0] = 10.

这篇关于如何结合多个numpy蒙版的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆