第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Python:將相同的整數(shù)值分組,然后求平均值

Python:將相同的整數(shù)值分組,然后求平均值

qq_花開(kāi)花謝_0 2023-08-08 17:01:55
我有大量數(shù)據(jù),我想對(duì)相同整數(shù)的值進(jìn)行分組,然后取平均值。例如:a = [0, 0.5, 1, 1.5, 2, 2.5]我想按如下方式分組:[0, 0.5] [1, 1.5] [2, 2.5]...然后取平均值并將所有平均值放入一個(gè)新數(shù)組中。
查看完整描述

4 回答

?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊

假設(shè)您想按數(shù)字的整數(shù)值進(jìn)行分組(因此數(shù)字向下舍入),這樣的方法可以工作:


>>> a = [0, 0.5, 1, 1.5, 2, 2.5]

>>> groups = [list(g) for _, g in itertools.groupby(a, int)]

>>> groups

[[0, 0.5], [1, 1.5], [2, 2.5]]

那么求平均就變成:


>>> [sum(grp) / len(grp) for grp in groups]

[0.25, 1.25, 2.25]

這假設(shè)a已經(jīng)排序,如您的示例所示。

查看完整回答
反對(duì) 回復(fù) 2023-08-08
?
瀟湘沐

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊

如果您使用其他庫(kù)沒(méi)有問(wèn)題:


import pandas as pd

import numpy as np


a = [0, 0.5, 1, 1.5, 2, 2.5]

print(pd.Series(a).groupby(np.array(a, dtype=np.int32)).mean())

給出:


0    0.25

1    1.25

2    2.25

dtype: float64


查看完整回答
反對(duì) 回復(fù) 2023-08-08
?
浮云間

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊

如果您想要使用字典的方法,您可以像這樣繼續(xù):


dic={}

a = [0, 0.5, 1, 1.5, 2, 2.5]

for items in a:

    if int(items) not in dic:

        dic[int(items)]=[]

    dic[int(items)].append(items)

print(dic)


for items in dic:

    dic[items]=sum(dic[items])/len(dic[items])

print(dic)


查看完整回答
反對(duì) 回復(fù) 2023-08-08
?
滄海一幻覺(jué)

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊

您可以使用groupby輕松獲得它(您可能需要先對(duì)列表進(jìn)行排序):


from itertools import groupby

from statistics import mean


a = [0, 0.5, 1, 1.5, 2, 2.5]

for k, group in groupby(a, key=int):

? ? print(mean(group))

會(huì)給:


0.25

1.25

2.25


查看完整回答
反對(duì) 回復(fù) 2023-08-08
  • 4 回答
  • 0 關(guān)注
  • 212 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)