Python

プログラマの考えが・・身につく本より(Python):統計処理〜偏差値

More than 3 years have passed since last update.

前回より続けています

こちらの書籍ではC++で紹介していますが、pythonにしてみたらということで書いています。

(といってもプログラミング初心者です、誰かのためになれば。)

今回統計処理ということで簡単な平均値を紹介していました。

内容的にだいぶ簡単だったのでせっかくならもう少しと思い、「偏差値」を求めるpythonを自分なりに書いてみようと思います。

偏差値

こちらの参考サイトで偏差値の求め方が記載ありましたので参考に作ってみました。


test36.py

#!/usr/bin/env python

#coding:utf-8

Elem = [87,76,100,97,64,83,88,92,74,95]
###sum = 0
###for i in Elem:
### sum += i

###平均点との差を求める
###ave = sum / len(Elem)
###print('平均点',ave)
###value = []
###for b in Elem:
### value.append(b - ave)

###values = []
###for c in value:
### values.append(c**2)

#分散を求めている
###sums = 0
###for d in values:
### sums += d

###平均値
M = sum(Elem) / len(Elem)
print('平均値',M)

###分散
V = sum((x - M)**2 for x in Elem) / len(Elem)
print('分散',V)

#sumsの平方根を求める
#total = int(sums) #小数点を切り捨てる
#totals = str(total) #整数値を文字列へ
#平方根を自分で求めようとして挫折
### len(totals) #桁数を調べる
### a = totals[:2] #>> 11
### b = totals[2:] #>> 74
### a = int(a)
### b = int(b)

import math #ライブラリを使います
totals = math.sqrt(V) #求められた平方根が標準偏差
print('標準偏差',totals)

#平均点との差(value * 10)に10をかけて標準偏差(totals)で割る
goukei = []
###for g in value:
### goukei.append((g * 10)/totals)
# 偏差値 = (各得点 - 平均値) / 標準偏差 * 10 + 50
for g in Elem:
goukei.append(((g - M)/totals)*10+50)
print('偏差値',goukei)

kotae = [((g - M)/totals)*10+50 for g in Elem]
print('リスト内包表記',kotae)

・・・(ターミナル実行)
>>> import test36
平均値 85.6
分散 117.44000000000001
標準偏差 10.836973747315254
偏差値 [51.291873573419736, 41.14143835369326, 63.287842469460124, 60.519541954989265, 30.068236295809825, 47.60080622079193, 52.214640411576696, 55.9057077642045, 39.295677379355, 58.67400827867536]
リスト内包表記 [51.291873573419736, 41.14143835369326, 63.287842469460124, 60.519541954989265, 30.068236295809825, 47.60080622079193, 52.214640411576696, 55.90570776420455904677379355, 58.67400827867536]

>>>


たくさんのコメント頂いたおかげさまで、

かなりコードを短く修正することができました。

こんなにご指摘いただきありがたく思います!