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

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

如何計算方差?

如何計算方差?

慕容708150 2021-11-09 19:29:03
我的代碼的目的是在列表列表中找到平均值和方差。約束是:如果在“linesort”中有兩個或更多列表,其中前兩個元素相等,則計算添加列表的第三個元素的平均值。我的問題是包括方差和平均值的計算,并返回一個包含 [a, b, mean,variance] 的列表。非常感謝你。linesort = [[1, 2, 3.00], [1, 2, 5.00], [1, 4, 7.00], [1, 4, 3.00] ,[3, 6, 5.2]]new = []final = []count=0for el in linesort:    new.append(el[:-1])tnew = [tuple(t) for t in new]setnew = set(tnew)setnew = [list(t) for t in setnew]for items in setnew:    inds = [i for i,x in enumerate(new) if x == items]    if len(inds) > 1:        somma = 0        for ind in inds:            print(somma)            somma = linesort[ind][2] + somma        media = somma/len(inds)        items.append(media)        final.append(items)print(final)期望輸出:('Output: ', [[1, 2, 4.0,1.0], [1, 4, 5.0,4.0]])至于差異,我想過這行代碼,但我無法讓它工作。variance = float(sum((linesort[ind][2] - media) ** 2 for linesort[ind][2] in linesort) / len(linesort))
查看完整描述

1 回答

?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

您可以通過首先重新組織字典中的數據來簡化代碼,將前兩個元素的元組作為鍵,并將相應的值放在列表中。


您可以使用 adefaultdict使這更容易。


然后,我們只需要計算每個列表的均值和方差。


from collections import defaultdict


linesort = [[1, 2, 3.00], [1, 2, 5.00], [1, 4, 7.00], [1, 4, 3.00] ,[3, 6, 5.2]]


# Let's first group the values: 


d = defaultdict(list)

for x, y, val in linesort:

    d[(x, y)].append(val)


# d will be: {(1, 2): [3.0, 5.0], (1, 4): [7.0, 3.0], (3, 6): [5.2]}    

# Now we can build the output list:


out = []

for (x, y), values in d.items():

    n = len(values)

    mean = sum(values)/n

    variance = sum(x**2 for x in values)/n - mean**2

    out.append([x, y, mean, variance])


print(out)

# [[1, 2, 4.0, 1.0], [1, 4, 5.0, 4.0], [3, 6, 5.2, 0.0]]

要回答您的評論:


如果您想省略只有一個值的情況,只需將最后一部分更改為:


for (x, y), values in d.items():

    n = len(values)

    if n > 1:

        mean = sum(values)/n

        variance = sum(x**2 for x in values)/n - mean**2

        out.append([x, y, mean, variance])


查看完整回答
反對 回復 2021-11-09
  • 1 回答
  • 0 關注
  • 223 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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