当前位置: 代码迷 >> 综合 >> AttributeError: 'bool' object has no attribute 'all'
  详细解决方案

AttributeError: 'bool' object has no attribute 'all'

热度:50   发布时间:2023-12-15 17:12:56.0

代码:

>>> aa = np.array([1,2,3])
>>> cc = np.array([1,2])
>>> (aa==cc).all()

报错:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'bool' object has no attribute 'all'

原因:

被比较的两个ndarray shape不一致时,返回值只有一个True或者False。所以单一的True或者False是bool变量,没有all属性。报错。

只有当两个ndarray的shape一致时,aa==bb 才能返回矩阵所有位置比较的结果对应True或者False。如下:

>>> aa==cc# 输出只有一个bool值
False>>> bb = np.array([1,2,3])
>>> aa==bb# 输出所有位置的比较结果
array([ True,  True,  True])# 输出总的结果
>>> (aa==bb).all()
True

PS:

(aa==bb).all 只要有一个位置的对应比较结果为False则输出都为False,全部位置为True才输出True

(aa==bb).any只要有一个位置为True则输出都为True,全部位置为False才输出False

  相关解决方案