Я использую numpy
для создания 2D-массива, но получаю ошибку при попытке доступа с определенным индексом.
MaxIt=100
PopSize = 30
w=1
c1=2
c2=2
#Intialisation
empty_particle = {'position': None,
'velocity': None,
'cost': None,
'best_position': None,
'best_cost': None}
gbest = {'position': None, 'cost': np.inf}
# Create Initial Population
pop = [];
for i in range(0, PopSize):
pop.append(empty_particle.copy())
pop[i]['position'] = np.random.uniform(VarMin, VarMax, nVar)
pop[i]['velocity'] = np.zeros(nVar)
pop[i]['cost'] = CostFunction(pop[i]['position'])
pop[i]['best_position'] = pop[i]['position'].copy()
pop[i]['best_cost'] = pop[i]['cost']
if pop[i]['best_cost'] < gbest['cost']:
gbest['position'] = pop[i]['best_position'].copy()
gbest['cost'] = pop[i]['best_cost']
pop[2]['position']
Последняя строка показывает ошибку. Я просто хочу напечатать второй элемент в списке pop
, т.е. pop[2]