我想使用机器学习技术,使用keras CNN对电磁量热计中释放的能量的“图像”进行分类。为了导入数据,我使用了熊猫数据帧,但是数据没有以必要的方式格式化
量热计可以被认为是一个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)
但是数组以某种奇怪的方式附加到列数据中
有人能告诉我一个有效的方法吗
多谢各位
你的arr形状实际上是(4),如果我没有误解的话,你想要的是(1,4)的数组。你可以做
arr=np.array([[event,xi,yi,0]])
来保持良好的体形首先,我们为所有事件和晶体创建一个具有多索引的数据帧,并将能量设置为0。然后我们添加具有相同索引的数据帧
例如:
结果:
对于28x28个水晶和1000个事件(新DF有784000行),在我的机器上需要1.5秒
相关问题 更多 >
编程相关推荐