我正在使用以下代码将数据从.bin文件导入numpy数组:
dt = np.dtype([('ShotNum', np.uint32), ('X', np.float32), ('Y', np.float32),\
('Z', np.float32),('inten', np.float32), ('refl', np.float32),\
('dopp', np.float32),('range', np.float32),('theta', np.float32),\
('phi', np.float32)])
data=np.fromfile('Data.bin',dtype=dt)
#Flatten Array and then recreate into array of desired dimension
flatdata=list(itertools.chain.from_iterable(data))
flatdata1=np.asarray(flatdata,dtype=float)
workdata=flatdata1.reshape(flatdata1.size//10,10)
它起作用了,但很慢。特别是在行中的数据结构中解包元组
flatdata=list(itertools.chain.from_iterable(data))
非常慢。在导入数据时,有没有一种方法可以避免在第一时间创建这种嵌套结构?如果没有,有没有更快的方法来压平?你知道吗
演示
chain
在展平结构化数组中的用法:chain
是一种成熟的压平嵌套列表的方法。你知道吗将结构化数组转换为二维数组有点棘手。
view
和astype
有时有效,但最可靠的是另一种列表方法:制作等效阵列:
tolist
更快:正如注释中所建议的,我们可以枚举字段,并从中生成一个数组:
与
tolist
方法相似的时间:相关问题 更多 >
编程相关推荐