我在为我的问题修改一个和我一起学习的人的密码。在
这是他的密码:
if not((paux1 == paux2).all()):
pop[int(saidaFO[pos,0]),:] = paux2
pos -= 1
它起作用了,当我打印时,我有paux1的结果:[-2.36681.3174]。 我正在处理另一个问题,在我的例子中,当我打印paux1时,我有一个值:[0.2107491848569726,443,3]
所以,当我试着做同样的比较时:
if not((paux1 == paux2).all()):
我得到了这个错误:“AttributeError:'bool'对象没有属性'all'” 我不明白发生了什么。。。有人能帮帮我吗? 我不太明白.all()是如何工作的。。。也许一个等效的代码可以工作。。。在
在你的代码中,}可能是numpy数组,所以
paux1
和{paux1 == paux2
返回一个表示布尔值的数组(不管测试的等式是真是假),而且该数组确实有一个.all()
方法。在听起来像是在处理列表,所以
paux1 == paux2
不像numpy数组那样按元素比较元素。您只检查两个列表是否相等,并返回一个单个布尔值。这个布尔值没有.all()
方法,这就是导致错误的原因。在预先将值列表转换为numpy数组,错误应该得到修复。在
相关问题 更多 >
编程相关推荐