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

为何Python中all([[False, True],[False, False]])返回True?

Python内置all()与Numpy数组all()的行为差异

核心原因:两者的判断逻辑完全不同


1. Python内置all()的逻辑

Python的all()函数会迭代传入的可迭代对象,只判断每个顶层元素本身是否为“真值”:

  • 在Python中,非空的容器(比如列表、元组)无论内部元素是什么,都会被判定为True
  • 对于嵌套列表[[False, True],[False, False]],all()会检查两个子列表:
    • bool([False, True]) → True
    • bool([False, False]) → True
  • 所有顶层元素都是真值,因此返回True

示例代码:

test = [[False, True],[False, False]]
print(all(test))  # 输出:True

2. Numpy数组all()的逻辑

Numpy数组的all()方法,默认会检查数组中所有元素是否全为True(等价于扁平化数组后判断):

  • 对于np.array([[False, True],[False, False]]),数组中存在False元素,因此直接返回False
  • 如果需要按行/列维度判断,可以指定axis参数:
    • axis=1:按行判断每行所有元素是否为True
    • axis=0:按列判断每列所有元素是否为True

示例代码:

import numpy as np
test = np.array([[False, True],[False, False]])
print(test.all())        # 输出:False
print(test.all(axis=1))  # 输出:array([ True, False])
print(test.all(axis=0))  # 输出:array([False,  True])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 03:12:37