簡體   English   中英

使用 for 循環計算數組的方差,Python

[英]Calculate variance of an array using for-loops, Python

我剛剛開始學習 Python,現在我必須使用 for 循環計算數組中的均值和方差。

目前,我得到一個不正確的方差值,我不知道為什么。

numbers = [7, 16, 0.3, 0, 15, -4, 5, 3, 15]

sum = 0

for value in range(0, len(numbers)):
    sum = sum + numbers[value]
    mean_value = sum / len(numbers)

print(mean_value)

n = len(numbers)
sum_squares = 0
for value in range(0, len(numbers)):
    sum_squares = sum_squares + (value - mean_value) ** 2
    var_value = sum_squares / n

print(var_value)

根據在線計算器,我應該得到方差 = 55.035,我得到的方差為 12.267

我將不勝感激任何幫助。

ķ

編輯:我剛剛意識到將第二部分更改為此有效:

for value in numbers:
    sum_squares = sum_squares + ((value - mean_value) ** 2)
    var_value = sum_squares / n

不確定“for value in numbers:”和“for value in range(0, len(numbers)):”之間的確切區別是什么,但這是有幫助的。

方差除以 (n-1)

numbers = [7, 16, 0.3, 0, 15, -4, 5, 3, 15]
sum = 0
count = 0
sum_squares = 0

for value in numbers:
  sum = sum + value
  count = count + 1
  
mean_value = (sum / count)

for value in numbers:
    sum_squares = sum_squares + ((value - mean_value)** 2)
    var_value = sum_squares / (count-1)

print (mean_value)
print (var_value)

出去:
6.366666666666666
55.035

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM