pythonで標準偏差を計算する方法を紹介します。
pythonで標準偏差を求める方法3選
pythonで標準偏差を求める方法は次の3つがあります。
それぞれの方法についてコードを示しながら紹介します。
本記事のコードは全てグーグルコラボラトリーで記述・動作確認をしています。
python標準ライブラリで標準偏差を求める: statistics
statisticsライブラリはpythonの標準ライブラリで、インポートすると統計量計算を簡単にできます。
statistics.pstdev()で母標準偏差、statistics.stdev()でサンプル標準偏差を求めることが可能です。
import statistics
list_num =[89, 38, 17, 190, 66]
print('母標準偏差:',statistics.pstdev(list_num))# 母標準偏差
print('サンプル標準偏差:',statistics.stdev(list_num))# サンプル標準偏差
出力:
母標準偏差: 60.18305409332431
サンプル標準偏差: 67.28670002311007
配列の標準偏差を計算する: numpy
numpyは配列を扱うことに長けた外部ライブラリです。
外部ライブラリなので、開発環境にnumpyをインストールする必要があります。
import numpy as np
numpy.std()
numpy.std()は配列の標準偏差を計算できる関数です。カッコ内に配列を入力することで使用できます。
na = np.array([[9, 4, 8],
[1, 1, 0],
[7, 7, 7],
[9, 4, 2]])
print(np.std(na))
出力:
3.1743328257901515
引数axis=0で列ごとの標準偏差、axis=1で行ごとの標準偏差を計算します。
print('列ごとの標準偏差:',np.std(na, axis=0))
print('行ごとの標準偏差:',np.std(na, axis=1))
出力:
列ごとの標準偏差: [3.27871926 2.12132034 3.34477204]
行ごとの標準偏差: [2.1602469 0.47140452 0. 2.94392029]
numpy.nanstd()
欠損値を含む配列をnumpy.std()で標準偏差を計算しようとすると、nanが返されます。
numpy.nanstd()を計算すると、欠損値を無視して標準偏差を求めます。
na_nan = np.array([[1, np.nan, 1],
[2, 0, 5],
[8, np.nan, 8]])
print('std()の結果:',np.std(na_nan))
print('nanstd()の結果:',np.nanstd(na_nan))
出力:
std()の結果: nan
nanstd()の結果: 3.1558174334820746
データフレームの標準偏差を求める: pandas
pandasを導入することでデータ解析を容易にできます。 外部ライブラリなので、開発環境へのインストールが必要です。
pandasを使うことでエクセルなどの自分のデータを読み込んでデータ分析することが可能です。
pandas.DataFrame.std()でデータフレームの標準偏差を計算します。
import pandas as pd
df = pd.DataFrame({'科目': ['国語', '数学', '英語'],
'A': [51, 21, 14],
'B': [70, 0, 74],
'C': [35, 55, 23],
'D': [90, 50,67]})
df.std()
出力:
A 19.655364
B 41.617304
C 16.165808
D 20.074860
dtype: float64
まとめ
pythonで標準偏差を求める方法を紹介しました。
簡単に標準偏差を求めたい場合はpython標準ライブラリのstatistics、行列や配列の標準偏差を計算するのであればnumpyライブラリ、エクセルデータなどの標準偏差を求めたい時はpandasライブラリと状況で使い分けましょう。
この記事を読んでpythonに興味を持った人は次の記事もご覧ください。pythonを独学する勉強方法について紹介しています。
コメント