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
- csv/tsvファイルの読み書き http://www.mwsoft.jp/programming/numpy/csv.html