You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何高效对大型二维布尔数组横向执行np.logical_and操作?

高效对二维布尔数组执行横向AND操作的方法

直接使用numpy的np.all()函数,通过指定axis=1参数实现横向(每行)的AND聚合,这是最适合大数组的高效方案:

import numpy as np

k = np.array([[True, True, False],
              [True, False, False],
              [True, True, True]])

# 对每行执行AND操作,得到预期结果
result = np.all(k, axis=1)
print(result)
# 输出: array([False, False,  True])

为什么这个方法高效?

numpy的内置聚合函数(比如np.all)是基于C语言实现的向量化操作,完全绕开了Python层面的循环开销。对于你提到的大尺寸数组,这种方法的执行速度会比Python for循环快几个数量级,能彻底解决循环耗时过长的问题。

补充说明

  • 如果需要对每列执行AND操作,只需将axis参数改为0:
    column_wise_result = np.all(k, axis=0)
    print(column_wise_result)
    # 输出: array([ True, False, False])
    
  • np.all()对布尔数组的逻辑与运算做了专门优化,比手动调用np.logical_and再循环的方式更简洁高效。

内容的提问来源于stack exchange,提问作者Crear

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 20:40:11