開発環境
- macOS Mojave - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Python 3.7 (プログラミング言語)
はじめての機械学習 (小高知宏(著)、オーム社)の第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 コメント:
コメントを投稿