Python入門!!for文ループ(繰り返し処理)を使って簡単な統計分析をやってみた!!

Pythonなどのプログラミングでリストを使って処理を行うとき、同じデータを何度も繰り返して使うことがあります。

しかしリストの内容が少数ならいいのですが、多数のデータを何度も何度も処理するためにいちいち打ち込むのは現実的ではありません。

そのために使うのが「ループ(繰り返し処理)」といわれるものです。

処理を繰り返すという意味ですね。

プログラミング無料体験はこちら↓↓↓。


for文を使ったループの使い方

「ループ」を使う場合for 文を使って処理を行います。

for文を使ったループの記述方法は以下のようになります。

for 文の記述法 for 繰り返し変数 in シーケンス:

ループ内で実行すブロック

ではfor 文を使ったループの例を見てみましょう。

この記述では、

繰り返し変数=saints

シーケンス=name

ループ内で実行するブロック=print(saints)

になります。

つまり繰り返し変数saintsを、print()関数を使って一つずつ表示していきます。

name=["Steve", "James", "Paul", "George", "John", "Patric", "Luca"]
for saints in name:
    print(saints)
Steve
James
Paul
George
John
Patric
Luca

つまりname 内の名前を一つずつ取り出し、繰り返し変数のsaintsに代入しているということになりますね。

for文を使って分散と標準偏差を求めてみる

ではループを使って分散と標準偏差を求めてみましょう。

統計の公式によると標準偏差は分散の平方根をとれば求められますので、早速やってみましょう。

五人の英語の点数を使って分散を求めてみます。

手順は以下の通り

  1. リストの値と平均との差を二乗して足す。
  2. 全ての値について1を繰り返す。
  3. 2で得た合計を要素数で割る。

まずは1番目「リストの値との差を二乗して足す。」ところからやってみましょう。

平均を求める

まず平均を求めます。

平均を求めるには、すべての点数を足して要素数で割る必要がありますね。

english = [80, 45, 75, 60, 90]
total_eng = sum(english)
elements_eng = len(english)
mean_eng = total_eng/elements_eng

これで平均が求められました。

分散を求める

次にリストの値と平均との差を二乗して足してみます。

variance = 0
for eng_score in english:
    variance += (eng_score-mean_eng)**2

この場合eng_scoreが繰り返し変数になり、englishの要素が一つずつ代入されていくようにプログラムされます。

variance = variance/elements_eng

最後に2で得た合計を要素数で割ると、分散は250ということが計算されました。

variance
250

標準偏差を求める

でも分散だけでは得点のばらつきが今一つわからないので、標準偏差を求めてみましょう。

標準偏差を求めるには、分散で得られた値の平方根を求めます。

つまり数値を0.5で累乗すると、標準偏差が求められます。

variance**0.5
15.811388300841896

標準偏差が15.811と求められました。

つまり得点には15点のばらつきがあるということですね。

数学の得点でも分散と標準偏差を求めてみる

それでは同じ手順で、数学の分散と標準偏差を求めてみましょう。

math = [40, 90, 30, 75, 65]
total_math = sum(math)
elements_math = len(math)
mean_math = total_math/elements_math
variance = 0
for math_score in math:
    variance += (math_score-mean_math)**2
variance = variance/elements_math
variance 490

分散を求めるところまで一気に計算してみました。

分散は490と求められましたので、そこから標準偏差を求めてみようと思います。

variance**0.5
22.135943621178654

分散の平方根を求めると、22.13。

つまり数学の得点には、英語の得点よりも大きいばらつきがあるということになります。

range()関数を使ってループの回数を決める

ループする回数を事前に決めておくことも可能です。

その場合使うのはrange()関数です。

例えばfor文のシーケンスとしてrange(10)を指定することで10回繰り返すループを実行します。

ループのブロック内での繰り返し関数cnt(Count)をprint(cnt)で表示すると、結果は以下の通り。

0から9まで10回のシーケンスが作られていますね。

for cnt in range(10):
    print(cnt)
0
1
2
3
4
5
6
7
8
9

簡単な複利計算

ではこれを使って簡単な複利計算をしてみましょう。

元金(savings)が50万円。

これを年利5%の金融商品に投資した場合、15年後にはいくらになっているかを計算します。

つまり0.05を元金にかけた金額を元金に足すことで15年後の金額がわかりますね。

savings = 50
for i in range(15):
    savings += savings*0.05

実際に実行してみると15年後の金額は103万円になっています。

savings
103.94640897056833

統計計算や金利計算などでも使えそうなループとrange()関数。

Pythonの応用範囲が広がりますね。

プログラミング無料体験はこちら↓↓↓。


  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です