開発環境
- macOS High Sierra - Apple
- Emacs (Text Editor)
- Python 3.6 (プログラミング言語)
Pythonからはじめる数学入門 (Amit Saha (著)、黒川 利明 (翻訳)、オライリージャパン)の2章(データを統計量で記述する)、3.9(プログラミングチャレンジ)、問題3-4(百分位を求める)を取り組んでみる。
コード(Emacs)
Python 3
#!/usr/bin/env python3 def percentile(data, p): data = sorted(data) n = len(data) i = n * p / 100 + 0.5 if i.is_integer(): return data[int(i) - 1] k = int(i) f = i - k return (1 - f) * data[k - 1] + f * data[k] def read_data(filename): with open(filename) as f: nums = [float(line) for line in f] return nums if __name__ == '__main__': data = [5, 1, 9, 3, 14, 9, 7] print(percentile(data, 50)) print(percentile(data, 25)) filename = 'marks.txt' data = read_data(filename) while True: p = input('百分位: ') if p == 'q': break p = float(p) print(percentile(data, p))
入出力結果(Terminal, Jupyter(IPython))
$ ./sample4.py 7 3.5 百分位: 50 16.5 百分位: 25 14.25 百分位: q $
0 コメント:
コメントを投稿