float object has no attribute all 怎么解决

我在PSO程序中,在运行到这一部分时

if value.all() < self.get_bestFitnessValue():
            self.set_bestFitnessValue(value)
            self.best_b = []
            for p in self.Particle_list:
                self.best_b.append(p.get_vel()[0])
            for i in range(self.dim):
                self.set_bestPosition(i, part.get_pos()[i])

出现错误:

float  object has no attribute  all

请问应该怎么解决啊

你的value是个浮点数,建议print(value)看看是什么数据,然后print(type(value))看看数据结构

float类型没有.all()方法

python有all函数,numpy数组有all方法,显然,这里是numpy数组的all方法。如果value不是一个numpy.ndarray类型,就不会有all方法。下面的代码演示了python的all函数和numpy数组的all方法的不同。

>>> all([1,2,0,True,False]) # Python的all函数
False
>>> all([1,2,3,True,'False']) # Python的all函数
True
>>> import numpy as np
>>> a = np.array([1,2,3])
>>> a.all() # NumPy数组的all函数
True
>>> a = np.array([1,2,0])
>>> a.all() # NumPy数组的all函数
False
>>> type(a)
<class 'numpy.ndarray'>