Я хочу использовать методы машинного обучения, чтобы классифицировать «изображения» энергии, выделяемой в электромагнитном c калориметре, используя keras CNN. Для импорта данных я использую Pandas DataFrame, однако данные не отформатированы должным образом.
Калориметр можно рассматривать как кристаллический квадрат 28x28, однако данные, которые я получаю Показывать только энергию в кристаллах, которые сработали, в среднем около 10-15 кристаллов на событие.
Event X Y Energy
0 22 13 203.49
0 23 12 73.1848
...
...
1 23 16 55.1652
1 24 16 0
1 25 16 20.4953
Это означает, что я хочу добавить слой в кадр данных для каждого кристалла (X, Y) которому еще не назначена энергия, и присвоить ему 0 энергии.
Я пробовал следующее:
newdf=pd.DataFrame()
for event in range(0,2):#999):
for xi in range(0,28):
for yi in range(0,28):
arr=np.array([event,xi,yi,0])
newdf=newdf.append(pd.DataFrame(arr))
print('newdf = ',newdf)
Но массивы добавляются в данные столбца каким-то странным путь.
Кто-нибудь может подсказать мне эффективный способ сделать это?
Спасибо.