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

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

如何在 python 列表中找到平均值、最大值和最大(類似于 excel 函數(shù))?

如何在 python 列表中找到平均值、最大值和最大(類似于 excel 函數(shù))?

猛跑小豬 2023-01-04 16:43:56
我有一個(gè)數(shù)字列表,我想從這個(gè)列表中再創(chuàng)建 3 個(gè)列表,其中包含其中的最大值、平均值和第五大數(shù)字。我的原始列表overdraw是列表塊,這意味著其中有子塊,每個(gè)塊中有 6 個(gè)數(shù)字,總共有 3 個(gè)塊或 6x3 矩陣或數(shù)組。overdraw:[[16,13,23,14,33,45],[23,11,54,34,23,76],[22,54,34,43,41,11]]我知道如何計(jì)算此列表中的最大值、平均值和 5 個(gè)最大值。但是我想要一個(gè)特定的答案,比如我知道每個(gè)塊的最大值、平均值和第 5 個(gè)最大值,但我希望它們被打印 4 次。我知道所有的價(jià)值觀:Max = [45, 76, 54] Average = [24, 37, 34]Largest(5th) = [14, 23, 22]我的方法:overdraw = [[16,13,23,14,33,45],[23,11,54,34,23,76],[22,54,34,43,41,11]]x = [sorted(block, reverse=True) for block in overdraw] # first sort the whole listmax = [x[i][0] for i in range(0, len(x))] # for max largest = [x[i][4] for i in range(0, len(x))] #5th largestaverage = [sum(x[i])/len(x[i]) for i in range(0, len(x))] #averageprint("max: ", max)print("5th largest: ", largest)print("average: ", average)運(yùn)行這段代碼后你會(huì)得到相同的輸出,但我想要這種格式的輸出:Average = [24, 24, 24, 24, 37, 37, 37, 37, 34, 34, 34, 34] Max = [45, 45, 45, 45, 76, 76, 76, 76, 54, 54, 54, 54]     Largest(5th) = [14, 14, 14, 14, 23, 23, 23, 23, 22, 22, 22, 22]如您所見,每個(gè)平均值、最大值和最大數(shù)在各自的列表中打印了 4 次。那么任何人都可以幫助這個(gè)答案嗎?
查看完整描述

2 回答

?
慕哥9229398

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

使用怎么樣pandas.DataFrame.explode

import pandas as pd

df = pd.DataFrame({

    'OvIdx'       : 3 * [range(4)],

    'Average'     : average,

    'Max'         : max,  # should be renamed/assigned as max_ instead

    'Largest(5th)': largest

}).explode('OvIdx').set_index('OvIdx').astype(int)

print(df)

這表現(xiàn)了


       Average  Max  Largest(5th)

OvIdx                            

0           24   45            14

1           24   45            14

2           24   45            14

3           24   45            14

0           36   76            23

1           36   76            23

2           36   76            23

3           36   76            23

0           34   54            22

1           34   54            22

2           34   54            22

3           34   54            22

從這里開始,您仍然可以執(zhí)行所有您想要的計(jì)算和/或獲取 NumPy 數(shù)組,執(zhí)行df.values.


根據(jù)您的評(píng)論,您還可以將您的專欄作為單獨(dú)的實(shí)體,例如

>>> df.Average.tolist()

[24, 24, 24, 24, 36, 36, 36, 36, 34, 34, 34, 34]


>>> df.Max.tolist()

[45, 45, 45, 45, 76, 76, 76, 76, 54, 54, 54, 54]


>>> df['Largest(5th)'].tolist()  # as string key since the name is a little bit exotic

[14, 14, 14, 14, 23, 23, 23, 23, 22, 22, 22, 22]

哪種方法開始有點(diǎn)矯枉過(guò)正,但可讀性強(qiáng)。


查看完整回答
反對(duì) 回復(fù) 2023-01-04
?
梵蒂岡之花

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

返回您指定的列表的解決方案


import itertools

import numpy as np


n_times = 4


overdraw = [[16,13,23,14,33,45],[23,11,54,34,23,76],[22,54,34,43,41,11]]

y = [sorted(block, reverse=True) for block in overdraw]


maximum = list(itertools.chain(*[[max(x)]*n_times for x in y]))

average = list(itertools.chain(*[[int(round(sum(x)/len(x)))]*n_times for x in y]))

fifth_largest = list(itertools.chain(*[[x[4]]*n_times for x in y]))


print(f"Average = {average}")

print(f"Max = {maximum}")

print(f"Largest(5th): {fifth_largest}")

輸出:


Average = [24, 24, 24, 24, 37, 37, 37, 37, 34, 34, 34, 34]

Max = [45, 45, 45, 45, 76, 76, 76, 76, 54, 54, 54, 54]

Largest(5th): [14, 14, 14, 14, 23, 23, 23, 23, 22, 22, 22, 22]


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

添加回答

舉報(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)