LoginSignup
4
2

More than 1 year has passed since last update.

Python Numpyを使用して平均値や分散などを算出する

Posted at

はじめに

こんにちは、この記事はプログラマーでもエンジニアでもなんでもないただのPC初心者がプログラミングの勉強のために書いたものとなっています。今回はpythonのライブラリであるNumpyを使用して、平均値・最大値・最小値・四分位数・分散・標準偏差を求めたいと思います。

開発環境

・Windows 11
・VScode
・Python 3.9.2
・Numpy 1.21.2

Numpy

公式ドキュメント
https://numpy.org/doc/1.21/index.html

 配列の計算を得意とするライブラリで、C言語で書かれているため、計算処理が速くなります。

Numpy配列

とりあえず、Numpyを使った配列を書いてみます。

コード
import numpy as np
#ライブラリのインポート

list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
#numpyを使わない配列
nplist = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
#numpy配列

print(list)
print(nplist)
出力
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0 1 2 3 4 5 6 7 8 9]

Numpy配列を使わないと、配列の要素はコンマで区切られるが、
Numpy配列を使うと、要素は半角の空白で区切られる。

最大値・最小値・中央値

使用する配列の要素はテストの点数ぽい何か

コード
import numpy as np
#ライブラリのインポート

nplist = np.array([82, 94, 93, 89, 91, 84, 98, 79])
#numpy配列

big = np.max(nplist)
#最大値
small = np.min(nplist)
#最小値
middle = np.median(nplist)
#中央値

print("最大値",big)
print("最小値",small)
print("中央値",middle)
出力
最大値 98
最小値 79
中央値 90.0

numpy.max(): 最大値の算出
numpy.min(): 最小値の算出
numpy.median(): 中央値の算出

平均値

コード
import numpy as np
#ライブラリのインポート

nplist = np.array([82, 94, 93, 89, 91, 84, 98, 79])
#numpy配列

a = np.mean(nplist)
#numpy.mean(): 配列の要素の平均値を算出

print("平均値",a)
出力
平均値 88.75

numpy.mean()で配列の要素の平均が算出されます。

四分位数

コード
import numpy as np
#ライブラリのインポート

nplist = np.array([82, 94, 93, 89, 91, 84, 98, 79])
#numpy配列

q_1 = np.percentile(nplist, 25)
#第一四分位数
q_2 = np.percentile(nplist, 50)
#第二四分位数
q_3 = np.percentile(nplist, 75)
#第三四分位数

print("データ", np.sort(nplist))
#sort: 昇順に並べ替え

print("第一四分位数", q_1)
print("第二四分位数", q_2)
print("第三四分位数", q_3)
出力
データ [79 82 84 89 91 93 94 98]
第一四分位数 83.5
第二四分位数 90.0
第三四分位数 93.25

 分位数を算出するには、numpy.percentile関数を用います。第一四分位数は、データを昇順に並べて半分に分けたとき、下位側のデータの中央値、すなわちデータの25%の位置にある値のことです。よって、第一四分位数を算出したいときは、第二引数に「25」を入力します。第二・第三四分位数の算出も同じです。
 percentile関数の第二引数には、算出したい分位点のパーセントを入力するので、第一~第三四分位数に限らず、色々な分位数の算出が可能です。(下記参照)

コード
import numpy as np
#ライブラリのインポート

np.set_printoptions(precision = 1, floatmode = 'fixed')
#numpy配列の小数点以下の表示桁数指定, 末尾を0で埋める

nplist = np.array([82, 94, 93, 89, 91, 84, 98, 79])
#numpy配列

q_array = np.percentile(nplist, q = [0, 20, 40, 60, 80, 100])
#percentileの第二引数には、配列で渡すことも可能

print("データ", np.sort(nplist))
#sort: 昇順に並べ替え

print(q_array)
出力
データ [79 82 84 89 91 93 94 98]
[79.0 82.8 88.0 91.4 93.6 98.0]

分散・標準偏差

コード
import numpy as np
#ライブラリのインポート

nplist = np.array([82, 94, 93, 89, 91, 84, 98, 79])
#numpy配列

nplist_var = np.var(nplist)
#分散の算出
nplist_std = np.std(nplist)
#標準偏差の算出

print("分散", nplist_var)
print("標準偏差", nplist_std)
出力
分散 37.4375
標準偏差 6.118619125260208

numpy.var関数で分散(標本分散)、numpy.std関数で標準偏差が算出できる。

最後に

 今回は単純な使い方しか説明していませんが、ここで紹介した関数には、様々なオプションがついています。機会があればまた書きます。

4
2
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
4
2