Python:AttributeError:';布尔';对象没有属性';全部';

Python:AttributeError:';布尔';对象没有属性';全部';,python,list,Python,List,为了我的问题,我正在修改一个和我一起学习的人的密码 这是他的密码: if not((paux1 == paux2).all()): pop[int(saidaFO[pos,0]),:] = paux2 pos -= 1 它是有效的,当我打印时,我得到了paux1的结果:[-2.3668 1.3174]。 我处理的是另一个问题,在我的例子中,当我打印paux1时,我有以下内容:[0.2107491848569726443,3] 所以,当我尝试做同样的比较

为了我的问题,我正在修改一个和我一起学习的人的密码

这是他的密码:

     if not((paux1 == paux2).all()):
        pop[int(saidaFO[pos,0]),:] = paux2
        pos -= 1
它是有效的,当我打印时,我得到了paux1的结果:[-2.3668 1.3174]。 我处理的是另一个问题,在我的例子中,当我打印paux1时,我有以下内容:[0.2107491848569726443,3]

所以,当我尝试做同样的比较时:

如果不是((paux1==paux2.all()):

我得到了这个错误:“AttributeError:'bool'对象没有'all'属性” 我不明白发生了什么事。。。有人能帮帮我吗?
我不太明白.all()是如何工作的。。。也许一个等价的代码可以工作

在你的代码中,
paux1
paux2
可能是numpy数组,因此
paux1==paux2
返回一个表示布尔值的数组(无论测试的等式是真是假),并且该数组确实有一个
.all()
方法

听起来像是在处理列表,所以
paux1==paux2
不像numpy数组那样逐个比较元素。您只需检查两个列表是否相等,并返回一个单个布尔值。此布尔值没有
.all()
方法,这就是导致错误的原因

事先将值列表转换为numpy数组,错误应该得到修复

paux1 = np.array(paux1)
paux2 = np.array(paux2) 

在你的代码中,
paux1
paux2
可能是numpy数组,因此
paux1==paux2
返回一个表示布尔值的数组(无论测试的等式是真是假),该数组确实有一个
.all()
方法

听起来像是在处理列表,所以
paux1==paux2
不像numpy数组那样逐个比较元素。您只需检查两个列表是否相等,并返回一个单个布尔值。此布尔值没有
.all()
方法,这就是导致错误的原因

事先将值列表转换为numpy数组,错误应该得到修复

paux1 = np.array(paux1)
paux2 = np.array(paux2) 

另一个错误来源是两个np.array的形状不相同。例如:

(np.array([[1,1]])==np.array([1,2,3])).all()
返回:

    ---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-400-ea9825114062> in <module>
----> 1 (np.array([[1,1]])==np.array([1,2,3])).all()

AttributeError: 'bool' object has no attribute 'all'
---------------------------------------------------------------------------
AttributeError回溯(最近一次呼叫上次)
在里面
---->1(np.array([[1,1]])==np.array([1,2,3]).all()
AttributeError:“bool”对象没有属性“all”

另一个错误来源是两个np.array的形状不相同。例如:

(np.array([[1,1]])==np.array([1,2,3])).all()
返回:

    ---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-400-ea9825114062> in <module>
----> 1 (np.array([[1,1]])==np.array([1,2,3])).all()

AttributeError: 'bool' object has no attribute 'all'
---------------------------------------------------------------------------
AttributeError回溯(最近一次呼叫上次)
在里面
---->1(np.array([[1,1]])==np.array([1,2,3]).all()
AttributeError:“bool”对象没有属性“all”

在原始代码中paux1和paux2是什么类型的对象?您好,请阅读并确认。根据给定的信息,我们无法复制它。“bool”实际上没有任何“all”方法。在原始代码中,“if”语句被放置在循环中。any(),.all()在有多个元素要尝试时使用。对不起,伙计们,我刚刚开始使用python。。。这就是为什么我不能提供你说的所有重要信息。但是Guimoute的回答解决了我的问题。在原始代码中,paux1和paux2是什么类型的对象?您好,请阅读并回答。根据给定的信息,我们无法复制它。“bool”实际上没有任何“all”方法。在原始代码中,“if”语句被放置在循环中。any(),.all()在有多个元素要尝试时使用。对不起,伙计们,我刚刚开始使用python。。。这就是为什么我不能提供你说的所有重要信息。但是Guimoute的回答解决了我的问题。Guimoute,在不转换列表的情况下,如何正确地执行与“all()”相同的操作?因为此解决方案解决了此处的问题,但在代码的另一部分中引起了兼容性问题*。
如果zip(paux1,paux2)中的所有(x1==x2表示(x1,x2)):
假设它们具有相同的长度。请注意,无论采用何种方法,如果不幸检查浮点数之间的相等性,都可能会遇到问题。就像1!=1.000000000001谢谢你!!!我做了一个测试,“if(paux1==paux2)”也可以用!Guimoute,在不转换列表的情况下,如何正确地执行与“all()”相同的操作?因为此解决方案解决了此处的问题,但在代码的另一部分中引起了兼容性问题*。
如果zip(paux1,paux2)中的所有(x1==x2表示(x1,x2)):
假设它们具有相同的长度。请注意,无论采用何种方法,如果不幸检查浮点数之间的相等性,都可能会遇到问题。就像1!=1.000000000001谢谢你!!!我做了一个测试,“if(paux1==paux2)”也可以用!嘿,这是一个很好的观察结果,你知道如何比较两个numpy数组以查看形状是否不同吗?嘿,这是一个很好的观察结果,你知道如何比较两个numpy数组以查看形状是否不同吗?