スポンサーリンク
PythonのNumPyでタブ区切りのtsvファイルを読み込み/書き込みする方法
numpy.loadtxt()でdelimiter = "\t"を指定して読み込む
numpy.loadtxt()でdelimiter = "\t"を指定することで、タブ区切りのtsvファイルを読み込むことができます。
npArray = np.loadtxt("in.txt", delimiter = "\t", dtype = int)
スポンサーリンク
numpy.loadtxt()のusecolsに読み込む列を指定
numpy.loadtxt()のusecolsに読み込む列を指定することができます。
例えば、1列目と3列目を読み込む場合には、下記のように書きます。
npArray = np.loadtxt("in.txt", delimiter = "\t", dtype = int, usecols = (1, 3))
numpy.savetxt()でtsv形式でファイルに書き込む
下記のように、numpy.savetxt()でdelimiter = "\t"を指定してファイルに書き込みます。
np.savetxt("out.txt", npArray, delimiter = "\t", fmt = "%d")
サンプルコード
例えば、下記のin.txtがあったとします。
$ cat in.txt 10 21 32 43 14 25 36 47 18 29 30 41
下記がサンプルコードになります。
$ cat sample.py #!/usr/bin/env python3 # coding: UTF-8 import numpy as np npArray = np.loadtxt("in.txt", delimiter = "\t", dtype = int) print (npArray) print("1行目と3行目を読み込む") npArray = np.loadtxt("in.txt", delimiter = "\t", dtype = int, usecols = (1, 3)) print (npArray) print("配列dataをtsv形式でout.txtに出力") np.savetxt("out.txt", npArray, delimiter = "\t", fmt = "%d")
下記が実行結果になります。
$ ./sample.py [[10 21 32 43] [14 25 36 47] [18 29 30 41]] 1行目と3行目を読み込む [[21 43] [25 47] [29 41]] 配列dataをtsv形式でout.txtに出力 $ cat out.txt 21 43 25 47 29 41
スポンサーリンク