亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Python中計算均值和方差

在Python中計算均值和方差

holdtom 2023-07-18 13:47:00
當您輸入一組數字時,我有這段代碼來計算平均值和方差,但我的方差偏離了應有的值。我的方差公式是否以某種方式關閉,或者我的代碼中可能存在一些錯誤?我的輸出:Input a positive number: 1mean is  1.0 variance is  0Input a positive number: 2mean is  1.5 variance is  0.125Input a positive number: 3mean is  2.0 variance is  0.3958333333333333正確輸出:Input a positive number: 1mean is  1.0 variance is  0Input a positive number: 2mean is  1.5 variance is  0.5Input a positive number: 3mean is  2.0 variance is  1mean = 0variance = 0x = 0n = 0while x >= 0:    x = float(input('Input a positive number: '))  # user input for code    n += 1    if x < 0:        break    if n == 1:  # Added this if statement to avoid dividing by 0        mean = x        print('mean is ', mean, 'variance is ', variance)    else:        mean = mean + ((x-mean)/n)  # formula for calculating mean        variance = (((n-2)/(n-1)) * variance) + (((mean-x)**2)/n)  # formula for calculating variance        print('mean is ', mean, 'variance is ', variance)
查看完整描述

2 回答

?
DIEA

TA貢獻1820條經驗 獲得超2個贊

你的方差公式是錯誤的。你可以在這里找到公式以便更好地理解,我這里就不解釋了。

mean = 0

variance = 0

x = 0

n = 0

while x >= 0:

? ? x = float(input('Input a positive number: '))? # user input for code

? ? n += 1

? ? if x < 0:

? ? ? ? break


? ? if n == 1:? # Added this if statement to avoid dividing by 0

? ? ? ? mean = x

? ? ? ? print('mean is ', mean, 'variance is ', variance)

? ? else:

? ? ? ? mean = mean + ((x-mean)/n)? # formula for calculating mean

? ? ? ??

? ? ? ? variance = (((n-2)/(n-1)) * variance) + (((x-mean)*(x-pre_mean))/(n-1))? # formula for calculating variance

? ? ? ? print('mean is ', mean, 'variance is ', variance)

? ? pre_mean = mean

輸出:


Input a positive number: 1

mean is? 1.0 variance is? 0

Input a positive number: 2

mean is? 1.5 variance is? 0.5

Input a positive number: 3

mean is? 2.0 variance is? 1.0

Input a positive number: 4

mean is? 2.5 variance is? 1.6666666666666665

你給出了一個錯誤的測試用例,


Input a positive number: 3

mean is? 2.0 variance is? 0.1

在這里,方差將1 not 0.1。您可以使用在線計算器輕松檢查樣本方差。


查看完整回答
反對 回復 2023-07-18
?
慕田峪9158850

TA貢獻1794條經驗 獲得超7個贊

您可以使用列表來存儲所有輸入。


x = 0

data = [] 

while x >= 0:

    x = float(input('Input a positive number: '))  # user input for code

    if x < 0:

         break


    data.append(x)        

    N = len(data)

    mean = sum(data) / N


    var = 0

    if N > 1:

        a = [x - mean for x in data]

        a = [x**2 for x in a]

        var = sum( a) / (N-1)

    

    print( "mean is ", mean, " variance is ", var)


查看完整回答
反對 回復 2023-07-18
  • 2 回答
  • 0 關注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號