python - boolean 索引的多个标准

标签 python filter boolean

将多个标准(其中任何一个都有效)传递给数组并返回一个 boolean 索引(然后可以用作过滤器)的最佳方法是什么?可用的解决方案遵循 if,then 框架,这超出了我的需要。

我知道我可以执行以下操作:

In[1]: 
names = np.array(['Bob','Joe','Bob','Will'])
data = np.random.randn(4,4)
mask = (names=='Bob')|(names=='Will')
data[mask]

Out[1]: 
array([[-0.25883247, -0.06236544, -0.02296274,  1.36340923],
       [ 0.3907503 , -2.38917418, -0.49057852, -0.25427256],
       [ 0.02648891, -1.27278901, -0.31815915,  1.72876199]])

但是如果我要测试 100 个名字而不是 2 个怎么办?

最佳答案

您可以将所有名称放在一个列表中,然后使用np.in1d生成掩码:

mask = np.in1d(names, ['Bob', 'Will'])

mask
# array([ True, False,  True,  True], dtype=bool)

关于python - boolean 索引的多个标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42380385/

相关文章:

python - Tensorflow 多维零插入上采样

python - Django 中的过滤器值显示奇怪

javascript - 如果值不匹配,则 Angular 过滤器

c++ - boolean 变量的初始化

python - 如何编写代码来生成从 1 到 N 的排列

python - 如何修复使用cv2.absdiff时该操作也不是 'array op array'

objective-c - Bool 不可转换为 ObjCBool

boolean - 将 boolean 值用作整数是 Pythonic 吗?

python - 使用 pandas 样式功能更改多级索引字体

python - Pandas 高效过滤 : Same filter condition on multiple columns