2019年7月15日月曜日

開発環境

はじめての機械学習 (小高知宏(著)、オーム社)の第2章(パラメーター調整による学習)、2.2(パラメーター調整による時系列データの学習)、2.2.1(学習データセットの作成)、フィールドの取得をC言語ではなくPythonで取り組んでみる。

コード

Python 3

#!/usr/bin/env python3
import sys

if len(sys.argv) != 2:
    print('Usage: cutfield.py.py <Nの値>', file=sys.stderr)
    sys.exit(1)

try:
    n = int(sys.argv[1])
    if n < 1:
        raise ValueError('Nの値が1以上の整数ではない。')
except ValueError as err:
    print(err, file=sys.stderr)
    sys.exit(1)


SEP = '\t'

for line in sys.stdin:
    try:
        s = line.split(sep=SEP)[n - 1]
        print(float(s.strip()))
    except IndexError as err:
        print(f'フィールドがありません。{n}', file=sys.stderr)
        sys.exit(1)
    except ValueError as err:
        print(err, file=sys.stderr)
        sys.exit(1)

入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))

$ ./cutfield.py
Usage: cutfield.py.py <Nの値>
$ ./cutfield.py -1
Nの値が1以上の整数ではない。
$ ./cutfield.py 0
Nの値が1以上の整数ではない。
$ ./cutfield.py a
invalid literal for int() with base 10: 'a'
$ ./cutfield.py 2 < sample2.txt 
12.0
22.0
32.0
42.0
52.0
$ ./cutfield.py 4 < sample2.txt 
14.0
24.0
34.0
44.0
54.0
$ ./cutfield.py 5 < sample2.txt 
フィールドがありません。5
$ 

0 コメント:

コメントを投稿