我在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'>