NumPyを用いたフラットファイルのインポート処理
フラットファイルとは
フラットファイルとは、文字で表されるデータを列挙して格納するファイル形式の一つで、一行が一つのレコードを表すもの。
古くは各項目が固定長のものを指したが、現代では各項目を区切り記号で分けた可変長のものを含む場合もある。
つまり、CSVやTSVファイルはフラットファイルです。
NumPyを用いたインポート処理
np.loadtxt()を使用して単純なインポート処理を行います。
data = np.loadtxt('test.csv', delimiter=',')
ヘッダーやコメント有り、区切り文字がタブ、取得したい列を限定したい場合は、パラメータで指定します。
data = np.loadtxt('test.tsv', delimiter='\t', skiprows=1, usecols=[0, 2])
- delimiter : 区切り文字
- skiprows : 先頭から何行をスキップするか指定。(デフォルトは0=スキップしない)
- usecols : 取得したい列
ほかにデータ型を指定できるパラメータdtypeがあります。
- dtype : データ型(デフォルトはfloat型)
dtypeを指定しないで文字列のヘッダーを読み込むとエラーになるので注意が必要です。
# 文字列型としてインポート
data = np.loadtxt('test.tsv', delimiter='\t', dtype=str)
# float型としてインポート(上から1行だけスキップ)
data_float = np.loadtxt('test.tsv', delimiter='\t', dtype=float, skiprows=1)
数値型を自動判別する関数としてnp.genfromtxt()があります。
dtype=Noneを渡すと列に対応する数値型を自動判別してくれます。
data = np.genfromtxt('test.csv', delimiter=',', names=True, dtype=None)
また、np.recfromcsv()は同様の動きをしてくれます。
np.genfromtxt()との違いはdtypeがデフォルトでNoneとなるので、指定しなくてもよいです。
data = np.recfromcsv('test.csv', delimiter=',', names=True)
参考情報
Author And Source
この問題について(NumPyを用いたフラットファイルのインポート処理), 我々は、より多くの情報をここで見つけました https://qiita.com/fastso/items/d10c1288943522f70a1b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .