LoginSignup
1
1

More than 5 years have passed since last update.

NumPyでテキスト形式の時系列データ読み込み

Last updated at Posted at 2017-10-09

TL;DR

genfromtxtメソッドの使い方メモ

読み込み対象のフォーマット

data.csv
日時,列A,列B,データ1,データ2
2017/10/9 0:10,日本語,Eng,0,1

読み込み用サンプルコード

import numpy as np
from datetime import datetime as dt

def main():
  str2date = lambda x: dt.strptime(x.decode("utf8"), '%Y/%m/%d %H:%M')
  str2utf8 = lambda x: x.decode("utf8")

  data = np.genfromtxt("data.csv", delimiter=",", skip_header=1,
              dtype=[('col1', dt), ('col2', 'U16'), ('col3', 'S16'), ('col4', 'f'), ('col5', 'f')],
              converters={0:str2date, 1:str2utf8})

  print( data )

if __name__ == '__main__':
  main()

出力

(datetime.datetime(2017, 10, 9, 0, 10), '日本語', b'Eng',  0.,  1.)

ポイント

空白セルの読み込み

nanになる。

dtype

読み込むすべてのカラムに対して設定する。
整数なら'i'を使う。
小数の型を'f8'といった具合に選べる。
outputとしてdatetime型が欲しければdatetimeと書けば良い。

converters

dtypeに型が無いデータはこちらが必要。
dtypeで格納するための前処理と考えればよい。

Thanks for

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1