5 způsobů, jak najít průměr seznamu v Pythonu

5 způsobů, jak najít průměr seznamu v Pythonu

Stanovení průměru seznamu (aritmetického průměru) je v programování běžným úkolem. Python nabízí několik způsobů, jak tuto operaci provést, pokrývajících různé případy použití a potřeby. V tomto článku prozkoumáme pět metod nalezení průměru seznamu v Pythonu, včetně vestavěných funkcí, vyjmenovaných výrazů a knihovny NumPy.

1. Vestavěná funkce sum() a len()

Nejjednodušším způsobem, jak najít průměr seznamu v Pythonu, je použití vestavěné funkce sum() pro výpočet součtu prvků seznamu a poté vydělení tohoto součtu počtem prvků pomocí funkce len().

python
seznam = [1, 2, 3, 4, 5]
prumer = sum(seznam) / len(seznam)
print(prumer)

Výstup: 3.0

2. Vyjmenovaný výraz

Vyjmenované výrazy poskytují stručný způsob výpočtu průměru seznamu. Funkce sum() a len() lze použít přímo ve výrazu, což eliminuje potřebu ukládání mezivýsledků.

python
seznam = [1, 2, 3, 4, 5]
prumer = sum(seznam) / len(seznam)
print(prumer)

Výstup: 3.0

3. Použití knihovny NumPy

Knihovna NumPy je výkonná knihovna pro numerické výpočty v Pythonu. Poskytuje funkci numpy.mean(), která je navržena pro výpočet průměru pole nebo seznamu.

python
import numpy as np

seznam = [1, 2, 3, 4, 5]
prumer = np.mean(seznam)
print(prumer)

Výstup: 3.0

4. Funkce uživatele

Pokud se potřebujete přizpůsobit konkrétním požadavkům nebo provádět další operace při výpočtu průměru, můžete si vytvořit vlastní funkci. Následující příklad ukazuje funkci, která vypočítá průměr seznamu a přijímá volitelný argument pro určení počtu desetinných míst:

python
def prumer_seznamu(seznam, desetinna_mista=2):
"""
Vypočítá průměr seznamu s volitelným počtem desetinných míst.

Args:
seznam (list): Seznam čísel.
desetinna_mista (int, volitelný): Počet desetinných míst na zaokrouhlení.

Returns:
float: Průměr seznamu.
"""

soucet = sum(seznam)
prumer = soucet / len(seznam)
return round(prumer, desetinna_mista)

seznam = [1, 2, 3, 4, 5]
print(prumer_seznamu(seznam))

Výstup: 3.00

print(prumer_seznamu(seznam, 3))

Výstup: 3.000

5. Generátor

Generátor je iterovatelný objekt, který poskytuje prvky na vyžádání. Může být použit k výpočtu průměru seznamu tím, že poskytne součet a počet prvků v průběhu iterace.

python
def generator_prumeru(seznam):
"""
Generátor, který poskytuje součet a počet prvků v seznamu.

Args:
seznam (list): Seznam čísel.

Yields:
tuple: Součet a počet prvků.
"""

soucet = 0
pocet = 0
for cislo in seznam:
soucet += cislo
pocet += 1
yield soucet, pocet

seznam = [1, 2, 3, 4, 5]
for soucet, pocet in generator_prumeru(seznam):
prumer = soucet / pocet
print(prumer)

Výstup: 1.0, 1.5, 2.0, 2.5, 3.0

Závěr

V tomto článku jsme prozkoumali pět různých způsobů, jak najít průměr seznamu v Pythonu. Každá z těchto metod má své vlastní výhody a nevýhody v závislosti na konkrétních požadavcích. Vestavěné funkce a vyjmenované výrazy poskytují jednoduchý a přímý přístup, zatímco knihovna NumPy nabízí optimalizované funkce pro numerické výpočty. Vytvoření vlastní funkce umožňuje větší přizpůsobení, zatímco generátor poskytuje efektivní způsob iterace přes seznam a postupné výpočtu průměru. Výběr vhodné metody závisí na požadavcích na přesnost, výkon a přizpůsobení.

Často kladené otázky

1. Co je výhoda použití knihovny NumPy pro výpočet průměru?

Knihovna NumPy poskytuje optimalizované funkce, které jsou navrženy pro numerické výpočty a mohou být efektivnější než vestavěné funkce Pythonu, zejména pro velké datové sady.

2. Kdy je vhodné použít vlastní funkci pro výpočet průměru?

Vlastní funkce je vhodná, když potřebujete provést další operace při výpočtu průměru nebo přizpůsobit výpočet konkrétním požadavkům.

3. Co je nevýhoda použití generátoru pro výpočet průměru?

Generátory jsou iterovatelné objekty, které neukládají celý seznam v paměti. To může být výhodné pro velké datové sady, ale může to být méně efektivní, pokud potřebujete přístup k prvkům seznamu více než jednou.

4. Je možné vypočítat průměr seznamu komplexních čísel?

Ano, je možné vypočítat průměr seznamu komplexních čísel. Jednoduše nahraďte funkce sum() a len() funkcemi numpy.sum() a numpy.size(), které podporují komplexní čísla.

5. Jaký je nejrychlejší způsob, jak najít průměr seznamu?

Nejrychlejší způsob, jak najít průměr seznamu, závisí na velikosti seznamu a požadované přesnosti. Knihovna NumPy obecně nabízí nejlepší výkon pro velké datové sady, zatímco vestavěné funkce Pythonu mohou být rychlejší pro malé seznamy a když je požadována menší přesnost.

6. Může být průměr seznamu záporný?

Ano, průměr seznamu může být záporný, pokud seznam obsahuje záporná čísla.

7. Jaký je rozdíl mezi průměrem a mediánem seznamu?

Průměr (aritmetický průměr) je součet všech prvků v seznamu vydělený počtem prvků. Medián je hodnota, která se nachází uprostřed seznamu, když je seznam seřazen v pořadí.

8. Jak mohu vypočítat průměr váženého seznamu?

Vážený průměr přiřazuje různým prvkům seznamu různé váhy. Vážený průměr lze vypočítat pomocí funkce numpy.average(), která přijímá seznam vah jako další argument.