我想从.xsf文件中读取一个数据网格(浮动的3D数组)。(格式文档在此处http://www.xcrysden.org/doc/XSF.html开始块_DATAGRID_3D块)
问题是数据分为5列,如果元素Nx*Ny*Nz不能被5整除,那么最后一行的长度可以是任意的。 因此,我不能使用numpy.genfromtxt()numpy.loadtxt文件()。。。在
我做了一个子程序,确实解决了这个问题,但速度非常慢(因为它可能使用了紧循环)。我要读取的文件很大(>;200mb200x200x200=8000000 ASCII数字)
有没有什么真正快速的方法可以将python/numpy中这种不友好的格式读入ndarray?在
xsf datagrids如下所示(例如shape=(3,3,3))
BEGIN_BLOCK_DATAGRID_3D
BEGIN_DATAGRID_3D_this_is_3Dgrid
3 3 3 # number of elements Nx Ny Nz
0.0 0.0 0.0 # grid origin in real space
1.0 0.0 0.0 # grid size in real space
0.0 1.0 0.0
0.0 0.0 1.0
0.000 1.000 2.000 5.196 8.000 # data in 5 columns
1.000 1.414 2.236 5.292 8.062
2.000 2.236 2.828 5.568 8.246
3.000 3.162 3.606 6.000 8.544
4.000 4.123 4.472 6.557 8.944
1.000 1.414 # this is the problem
END_DATAGRID_3D
END_BLOCK_DATAGRID_3D
我和熊猫和纽比有点关系。Pandas将为丢失的数据填充nan值。在
输出
^{pr2}$相关问题 更多 >
编程相关推荐