開発環境
- 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 コメント:
コメントを投稿