【发布时间】:2019-12-04 22:15:35
【问题描述】:
我想将某个hdf5文件中的一些信息写入一个新的txt文件。 信息包括时间,纬度,经度,obs,协方差矩阵,其中每个变量都是数组。
time是一维数组,形状为(t,),lat和lon也是一维数组,形状为(t,),表示特定时间的位置,obs是二维数组,形状为(t,n),表示我们有t个观察值,每个观察值包含n个状态,covariance matrix是一个3D数组,形状为(t,n,n)。我想做什么一一提取这些信息。
with open('test.dat','w') as output_file:
for i in np.arange(10):
output_file.writelines(str(time[i])+' '+str(lat[i])+' '+str(lon[i])+'\n')
output_file.writelines('%s ' % l for l in obs[i])
output_file.write('\n')
output_file.writelines('%s ' % l for l in cov[i])
output_file.write('\n')
假设我们有time= np.array([1,2,3]),
lat=np.array([20,30,40]),lon=np.array([40,50,70]),
obs=np.random.random((3,4)),cov = np.random.random((3,4,4)),
我希望输出文件这样写:
time[0] lat[0] lon[0]
obs[0,0] obs[0,1] obs[0,2] obs[0,3]
cov[0,0,0] cov[0,0,1] cov[0,0,2] cov[0,0,3]
....
....
cov[0,3,0] cov[0,3,1] cov[0,3,2] cov[0,3,3]
time[1] lat[1] lon[1]
.....
示例输出中的每一行都是输出文件中的一个文本行。一行中的字段由一个空格分隔。 但是我写的代码好像不行,怎么办?
【问题讨论】:
-
您是否尝试使用 HDF5?如果您执行
output_file.write('\n'),您将编写一个文本文件。我希望你想要 h5py 并拥有类似with h5py.File('test.h5') as f: ...的东西,而不是仅仅在文件上使用open -
@RoryDaulton,对不起,我已经更正了。
-
@ScottStaniewicz,不,我想将不同的数组从 hdf5 放到一个新的 txt 文件中。
-
注意:
str[time[i]]将是无效的语法,您需要str(time[i])