LoginSignup
0
1

More than 1 year has passed since last update.

中央値、四分位点を求める関数(Python)

Last updated at Posted at 2022-04-06

概要

 その名のとおりです。中央値や四分位点を求めるだけの関数です。
 例えばBellCurveの統計Webなど、統計の本やサイトでよく出てきますが、データがたくさん与えられて、それの中央値や四分位点を求めなさいって問題、単純に数えるのが面倒くさくないですか???
 そんなものはPCに任せて一瞬で出せば良いんです。

mode.py
import numpy as np

array = [56, 48, 78, 81, 86, 71, 72, 88, 46, 47, 89, 58, 43, 79, 48, 41]
array.sort() # 昇順に並び替え
print(array)

def mode(array):
    mode_index = (len(array) - 1) / 2
    if len(array) % 2 == 0:
        # 中央の二つの値の平均
        mode = (array[int(np.floor(mode_index))] + array[int(np.ceil(mode_index))]) / 2 
    else:
        mode = array[mode_index]

    print(mode)

mode(array)

def firstQuater(array):
    first_index = int(len(array) / 4 - 1)
    if len(array) % 4 == 0:
        first_mode = ((array[first_index]) + (array[first_index + 1])) / 2
    else:
        first_mode = array[int(np.ceil(first_index))]
    print(first_mode)

firstQuater(array)

def thirdQuater(array):
    third_index = int(3 * len(array) / 4 - 1)
    if(3 * len(array)) % 4 == 0:
        third_mode = ((array[third_index]) + (array[third_index + 1])) / 2
    else:
        third_mode = array[int(np.ceil(third_index))]
    print(third_mode)

thirdQuater(array)

実行結果

[41, 43, 46, 47, 48, 48, 56, 58, 71, 72, 78, 79, 81, 86, 88, 89]
64.5
47.5
80.0

配列を定義してそれを関数にぶち込むだけ。
 if文で場合分けしているのは、真ん中の数が一つに定まるかと二つになるかで中央値等の求め方が変わるからです。正直本で公式化されていたので、それをコード化するだけです。
 中央値や四分位点の意味はネットで調べてください。
 間違い等、ツッコみどころがあったら教えてください。
 以上。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1