Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでリスト要素の標準偏差を求める方法|sum()とlen()を使った計算手順

リスト内の各要素が平均値からどれだけ散らばっているかを示す指標として、標準偏差は統計解析で最も広く使われる尺度のひとつです。Pythonでは、組み込み関数の sum()len() を組み合わせるだけで、外部ライブラリに頼らずに簡単に計算できます。

コード例

以下は、リストの標準偏差を求める具体的な実装例です。

my_list = [3, 5, 7, 10, 12]

print("元のリスト :")
print(my_list)

my_mean = sum(my_list) / len(my_list)
my_variance = sum([((x - my_mean) ** 2) for x in my_list]) / len(my_list)
my_result = my_variance ** 0.5

print("リストの標準偏差 :")
print(my_result)

出力結果

元のリスト :
[3, 5, 7, 10, 12]
リストの標準偏差 :
3.2619012860600183

処理の流れと解説

  • まず、サンプルとなる数値のリストを定義し、コンソールに表示します。

  • sum() でリスト全体の合計値を、len() で要素数をそれぞれ取得します。

  • 合計値を要素数で割ることで、リストの平均値(my_mean)を求めます。

  • 続いて、リスト内包表記で各要素と平均値の差を二乗し、その合計を要素数で割ることで分散(my_variance)を計算します。

  • 最後に、分散の平方根(0.5乗)を取ると標準偏差(my_result)が得られます。

  • この結果がコンソールに出力されます。

statisticsモジュールを使ったより簡潔な方法

Python 3.4以降では、標準ライブラリの statistics モジュールを利用すれば、同じ計算をわずか1行で実現できます。用途に応じて母標準偏差と標本標準偏差を使い分けられるのも利点です。

import statistics

my_list = [3, 5, 7, 10, 12]

print(statistics.pstdev(my_list))  # 母標準偏差:約3.26
print(statistics.stdev(my_list))   # 標本標準偏差:約3.65

平均偏差との違い

なお「平均偏差」は、各要素と平均値の差の絶対値の平均を取ったものであり、二乗して平方根を取る標準偏差とは計算方法が異なります。平均偏差は以下のように求められます。

my_mean = sum(my_list) / len(my_list)
mean_deviation = sum(abs(x - my_mean) for x in my_list) / len(my_list)

print(mean_deviation)  # 2.88

このように、データのばらつきを測る方法は複数あります。外れ値の影響を受けにくい指標が必要な場合は平均偏差、統計解析や機械学習で一般的に用いられる指標が必要な場合は標準偏差を選ぶとよいでしょう。

  1. リスト内の要素の合計を求めるPythonプログラム

    この記事では、Pythonを使ってリスト内のすべての要素の合計を求める方法について、具体的なコード例とともに解説します。問題の定義リストが入力として与えられたとき、そのリストに含まれるすべての要素の合計値を計算する必要があります。例えば、[1, 2, 3, 4, 5]というリストが与えられた場合、出力は 15(1+2+3+4+5)となります。この問題を解くためのアプローチは主に2つあります。1つは組み込み関数を使用する方法、もう1つはブルートフォース(総当たり)方式でループ処理を行う方法です。方法1:組み込み関数 sum() を使うPythonには標準で用意されている組み込み関数 sum()

  2. Pythonでリストの平均値を求める方法

    Pythonには、複数の要素の合計を簡単に計算できる組み込み関数 sum() が用意されています。ここでは、この関数を使ってリスト内のすべての数値の合計を求め、その後、合計を要素数で割ることで平均値を計算します。 アルゴリズム ステップ1:「リストのサイズ」を入力する ステップ2:「要素」を入力する ステップ3:sum関数を使用して、すべての数値の合計を計算する ステップ4:平均値を計算する サンプルコード # リストの平均値を求める A=list() n=int(input(Enter the size of the List ::)) print(Enter the number :