Jak zprůměrovat seznam seznamů v jazyce Python?

Problém: Máte seznam seznamů a chcete vypočítat průměr jednotlivých sloupců.

Příklad:

data = , , , ]

Chcete získat průměrné hodnoty tří sloupců:


Existují tři metody, které řeší tento problém. Můžete si s nimi pohrát v interaktivním prostředí a níže si přečíst další podrobnosti:

Obsah

Metoda 1: Průměr v Pythonu (bez knihovny)

Jednoduchý jednořádkový příkaz s porozuměním seznamu v kombinaci s funkcí zip() na rozbaleném seznamu pro transpozici seznamu seznamů udělá práci v Pythonu.

data = , , , ]# Method 1: Pure Pythonres = print(res)# 

Máte rádi jednořádky v Pythonu? Já určitě ano – dokonce jsem o tom napsal celou knihu se sanfranciským nakladatelstvím NoStarch. Kliknutím se na knihu podíváte v nové záložce:

Vizualizaci provádění kódu a paměťových objektů tohoto kódu si můžete prohlédnout v následujícím nástroji (stačí kliknout na „Další“ a uvidíte, jak se odvíjí jeden krok kódu).

Metoda 2: Průměrování pomocí knihovny NumPy

Z dat vytvoříte pole NumPy a předáte ho funkci np.average().

data = , , , ]# Method 2: NumPyimport numpy as npa = np.array(data)res = np.average(a, axis=0)print(res)# 

Argument axis funkce average určuje, podél které osy chcete vypočítat průměrnou hodnotu. Pokud chcete průměrovat sloupce, definujte axis=0. Pokud chcete průměrovat řádky, definujte axis=1. Pokud chcete průměrovat všechny hodnoty, tento argument vynechejte.

Metoda 3: Knihovna průměrných statistik + Map()

Jen pro ukázku další alternativy uvádíme jednu s použitím funkce map() a našeho triku zip(*data) pro transpozici „matice“ data.

data = , , , ]# Method 3: Statistics + Map()import statisticsres = map(statistics.mean, zip(*data))print(list(res))# 

Funkce map(function, iterable) aplikuje function na každý prvek v iterable. Jako alternativu můžete také použít chápání seznamu, jak je uvedeno v metodě 1 v tomto návodu. Guido van Rossum, tvůrce jazyka Python a jeho benevolentní diktátor pro život (BDFL), ve skutečnosti dává přednost porozumění seznamu před funkcí map().

Kam dál?

Teorie už bylo dost, pojďme do praxe!“

Chcete-li být v programování úspěšní, musíte se dostat ven a řešit skutečné problémy skutečných lidí. Tak se můžete snadno stát šestimístným výdělkem. A právě tak si v praxi vypilujete dovednosti, které skutečně potřebujete. Vždyť k čemu je učení teorie, kterou nikdo nikdy nepotřebuje?

Praktické projekty jsou způsob, jak si v kódování nabrousit pilku!

Chcete se stát mistrem kódu tím, že se zaměříte na praktické projekty, které vám skutečně vydělávají peníze a řeší problémy lidí?

Tak se staňte vývojářem Pythonu na volné noze! Je to nejlepší způsob, jak přistoupit k úkolu zlepšit své dovednosti v Pythonu – i když jste úplný začátečník.

Přihlaste se na můj bezplatný webinář „Jak si vybudovat dovednost Python s vysokým příjmem“ a podívejte se, jak jsem rozvíjel své kódovací podnikání online a jak to můžete udělat i vy – z pohodlí svého domova.

Přihlaste se na bezplatný webinář nyní!

Při práci výzkumníka v oblasti distribuovaných systémů našel Dr. Christian Mayer zalíbení ve výuce studentů informatiky.

Aby pomohl studentům dosáhnout vyšší úrovně úspěchu v jazyce Python, založil webovou stránku Finxter.com zaměřenou na výuku programování. Je autorem populární knihy o programování Python One-Liners (NoStarch 2020), spoluautorem série knih Coffee Break Python vydaných vlastním nákladem, nadšencem do informatiky, pracovníkem na volné noze a majitelem jednoho z deseti největších blogů o Pythonu na světě.

Jeho vášní je psaní, čtení a programování. Jeho největší vášní je však sloužit začínajícím programátorům prostřednictvím Finxteru a pomáhat jim zvyšovat jejich dovednosti. Do jeho bezplatné e-mailové akademie se můžete přihlásit zde.

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.