Modul numpy Pythonu poskytuje funkci nazvanou numpy.average(), která se používá pro výpočet váženého průměru podél zadané osy.
Syntax:
numpy.average(a, axis=None, weights=None, returned=False)
Parametry:
x: array_like
Tento parametr definuje zdrojové pole, jehož průměr prvku chceme vypočítat. Pokud je 'x' pole, provede se převod.
osa: int nebo Žádná nebo n-tice ints (volitelné)
Tento parametr definuje osu, podél které se bude vypočítat průměr. Ve výchozím nastavení je osa nastavena na Žádná, což vypočítá průměr všech prvků zdrojového pole. Počítání začíná od koncové k počáteční ose, když je hodnota osy záporná.
váhy : array_like (volitelné)
Tento parametr definuje pole obsahující váhy spojené s hodnotami pole. Každá hodnota prvků pole dohromady tvoří průměr podle příslušné váhy. Vážené pole může být jednorozměrné nebo stejného tvaru jako vstupní pole. Pokud není k prvku pole přiřazena žádná váha, bude se s váhou zacházet jako s 1 pro všechny prvky.
vráceno: bool (volitelné)
Ve výchozím nastavení je tento parametr nastaven na hodnotu False. Pokud jej nastavíme jako True, vrátí se n-tice průměru a součtu_vah. Pokud je hodnota False, vrátí se průměr. Pokud pro váhy nejsou žádné hodnoty, vážený součet je ekvivalentní počtu prvků.
Vrácení:
retval, [součet_vah]: typ_pole nebo double
Tato funkce vrací buď průměr, nebo průměr i součet vah, které závisí na vráceném parametru.
Zvyšuje:
ZeroDivisionError
Tato chyba je zvýšena, když jsou všechna závaží podél osy nastavena na nulu.
TypeError
Tato chyba se objeví, když délka váženého pole není stejná jako tvar vstupního pole.
Příklad 1:
import numpy as np data = list(range(1,6)) output=np.average(data) data output
Výstup:
[1, 2, 3, 4, 5] 3.0
Ve výše uvedeném kódu:
- Importovali jsme numpy s aliasem np.
- Vytvořili jsme seznam prvků 'data' .
- Proměnnou jsme deklarovali 'výstup' a přiřadil vrácenou hodnotu průměrný() funkce.
- Seznam jsme prošli 'data' ve funkci.
- Nakonec jsme se pokusili vytisknout 'data' a 'výstup'
Ve výstupu ukazuje průměr prvků seznamu.
Příklad 2:
import numpy as np output=np.average(range(1,16), weights=range(15,0,-1)) output
Výstup:
5.666666666666667
Příklad 3:
import numpy as np data=np.arange(12).reshape((4,3)) output = np.average(data, axis=1, weights=[1./4, 3./4, 5./4]) data output
Výstup:
array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [ 9, 10, 11]]) array([ 1.44444444, 4.44444444, 7.44444444, 10.44444444])
Ve výše uvedeném kódu:
- Importovali jsme numpy s aliasem np.
- Vytvořili jsme pole 'data' použitím arange() a np.reshape() funkce.
- Proměnnou jsme deklarovali 'výstup' a přiřadil vrácenou hodnotu průměrný() funkce.
- Prošli jsme polem 'data' , nastavte osu na 1 a vážené pole ve funkci.
- Nakonec jsme se pokusili vytisknout 'data' a 'výstup'
Ve výstupu zobrazuje průměr jednotlivých prvků sloupce v poli.
Příklad 4:
import numpy as np data=np.arange(12).reshape((4,3)) data np.average(data, weights=[1./4, 3./4, 5./4])
Výstup:
array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [ 9, 10, 11]]) Traceback (most recent call last): File '', line 1, in File 'C:Python27libsite-packages umpylibfunction_base.py', line 406, in average 'Axis must be specified when shapes of data and weights.' TypeError: Axis must be specified when shapes of data and weights differ.