alw*_*ous 7 python numpy pandas
我有一个通过对数据框应用不同搜索条件获得的布尔掩码列表。以下是包含 4 个掩码的示例列表:
mask_list = [mask1, mask2, mask3, mask4]
Run Code Online (Sandbox Code Playgroud)
我想找到列表中所有掩码的逻辑或。换句话说,
or_mask = mask_list[0] | mask_list[1] | mask_list[2] | mask_list[3]
Run Code Online (Sandbox Code Playgroud)
对于包含任意数量掩码的列表,是否有一种紧凑的方法来实现此目的?我知道我可以编写一个 for 循环,如下所示,但是有没有更短、更Pythonic 的方法来做到这一点?
for i in range(len(mask_list)):
if i == 0:
temp_mask_or = mask_list[i]
else:
temp_mask_or = temp_mask_or | mask_list[i]
Run Code Online (Sandbox Code Playgroud)
您可以使用减少:
or_(x,y)
意味着x|y
这会起作用:
from operator import or_
or_mask = reduce(or_,mask_list)
Run Code Online (Sandbox Code Playgroud)
编辑:正如 JoeCondron 所建议的,operator.or_
您可以使用numpy.logical_or
它给出相同的结果但速度更快。
归档时间: |
|
查看次数: |
3137 次 |
最近记录: |