2016-11-20 20 views
-1

4つのデータセットを含むhdf5ファイルがあり、各データセットには3つの列があります。 dtypeはint64です。私はそれを.txtまたは.csvファイルにエクスポートしようとしており、各データセットを別々のファイルに入れたいと思います。各ファイルには3つの列があります。 here is small example of inputs複数のデータセットを.hdf5からcsvにエクスポートする

with open('test.txt','wb') as f: 
    np.savetxt(f,s1,fmt='%s') 

が、出力は多くのリストを持つ.txtファイルで、何の列がありません:私はpythonでこのコマンドを試してみました。異なるデータセットも分離されていません!ここでは、分離したファイルにある1つのデータセットについて、私が得たいと思っている小さなものです。

s1 s2 s3 
4 6 8 
5 7 8 
7 4 6 

これを行う方法についてアドバイスしますか?

+0

's1'の内容の小さな例を挙げてください。 –

+0

質問は写真で更新されています。リンクをクリックしてください。入力0では、1と2はs1、s2とs3を表します。 – bzmby

+0

これはあまり役に立ちません。私は 's1'が得られる方法に興味があります:どのようにしてhdf5データセットを抽出しましたか?これはnumpyのデータ型としてどうですか?画像へのリンクを含まないようにしてください。何年も利用可能なことはめったにありません。代わりに、質問にデータ(またはそのサブセット)をテキスト形式で追加します。 これで、 'test.txt'の内容の例(最初の20文字程度)を追加できますか? –

答えて

0

あなたは次のコードスニペットを使用してこの問題を解決するために、Pythonで無料のツールHDFql(http://www.hdfql.com)を使用することもできます。

# import HDFql module (make sure it can be found by the Python interpreter) 
import HDFql 

# use (i.e. open) HDF file named "example.h5" 
HDFql.execute("USE FILE example.h5") 

# write datasets dataset1, dataset2, dataset3 and dataset4 into files file1.csv, file2.csv, file3.csv and file4.csv 
HDFql.execute("SELECT FROM dataset1 INTO FILE file1.csv SPLIT 3") 
HDFql.execute("SELECT FROM dataset2 INTO FILE file2.csv SPLIT 3") 
HDFql.execute("SELECT FROM dataset3 INTO FILE file3.csv SPLIT 3") 
HDFql.execute("SELECT FROM dataset4 INTO FILE file4.csv SPLIT 3") 

このコードを実行した結果がfile1.csvという名前の4つのファイル、file2.csvなり、 file3.csvfile4.csv 各々はdataset1dataset2dataset3dataset4それぞれのデータセット内に格納されたデータを含むであろう。

ファイルに書かれている3つの要素(あなたの場合は3つの64ビット番号)ごとに、新しい行も書き込まれます(したがってキーワードはSPLIT 3)。各要素はコンマで区切られます。別の区切り記号が必要な場合は、キーワードSEPARATOR(例:SELECT FROM dataset1 INTO FILE file1.csv SEPARATOR * SPLIT 3)を使用します。

関連する問題