スポンサーリンク

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

スポンサーリンク