HDF5 形式のファイルを読み取るために、h5py python パッケージを使用しています。(例 somefile.h5) データセットの内容をテキスト ファイルに書き込みたいと思います。
たとえば、次の内容のテキスト ファイルを作成したいと思います: 1,20,31,75,142,324,78,12,3,90,8,21,1
このコードを使用して、Python でデータセットにアクセスできます。
import h5py
f = h5py.File('/Users/Me/Desktop/thefile.h5', 'r')
group = f['/level1/level2/level3']
dset = group['dsetname']
私のデータセットには 20000 を超えるエントリがあるため、私の素朴なアプローチは遅すぎます。
# write all values to file
for index in range(len(dset)):
# do not add comma after last value
if index == len(dset)-1: txtfile.write(repr(dset[index]))
else: txtfile.write(repr(dset[index])+',')
txtfile.close()
return None
これをファイルに書き込むより速い方法はありますか? おそらく、データセットを NumPy 配列または Python リストに変換してから、ファイル書き込みツールを使用できますか?
(ファイルに書き込む前に、値をより大きな文字列に連結して実験することもできますが、完全にエレガントなものがあることを願っています)