El mòdul numpy de Python proporciona una funció anomenada numpy.average(), que s'utilitza per calcular la mitjana ponderada al llarg de l'eix especificat.
Sintaxi:
numpy.average(a, axis=None, weights=None, returned=False)
Paràmetres:
x: array_like
Aquest paràmetre defineix la matriu font de la qual volem calcular la mitjana de l'element. La conversió s'intentarà si 'x' és una matriu.
int parseint
eix: int o Cap o tupla d'ints (opcional)
Aquest paràmetre defineix l'eix al llarg del qual es calcularà la mitjana. Per defecte, l'eix s'estableix en Cap, que calcularà la mitjana de tots els elements de la matriu font. Els recomptes comencen des del final fins a l'eix inicial quan el valor de l'eix és negatiu.
pesos: array_like (opcional)
Aquest paràmetre defineix una matriu que conté pesos associats amb els valors de la matriu. Cada valor dels elements de la matriu junts fa la mitjana segons el seu pes associat. La matriu ponderada pot ser unidimensional o de la mateixa forma que la matriu d'entrada. Quan no hi ha cap pes associat a l'element de matriu, el pes es tractarà com a 1 per a tots els elements.
retornat: bool (opcional)
Per defecte, aquest paràmetre s'estableix en Fals. Si ho posem com a True, es retorna una tupla de mitjana i suma_de_pesos. Si és Fals, es retorna la mitjana. La suma ponderada és equivalent al nombre d'elements si no hi ha valors per als pesos.
Devolucions:
retval, [sum_of_weights]: tipus_matriu o doble
Aquesta funció retorna la mitjana o la mitjana i la suma_de_pesos que depenen del paràmetre retornat.
Pujades:
ZeroDivisionError
Aquest error augmenta quan tots els pesos al llarg de l'eix es posen a zero.
TypeError
Aquest error es produeix quan la longitud de la matriu ponderada no és la mateixa que la forma de la matriu d'entrada.
Exemple 1:
import numpy as np data = list(range(1,6)) output=np.average(data) data output
Sortida:
[1, 2, 3, 4, 5] 3.0
En el codi anterior:
- Hem importat numpy amb el nom d'àlies np.
- Hem creat una llista d'elements 'dades' .
- Hem declarat la variable 'sortida' i assignat el valor retornat de mitjana() funció.
- Hem passat la llista 'dades' en la funció.
- Finalment, hem intentat imprimir el 'dades' i 'sortida'
A la sortida, mostra la mitjana dels elements de la llista.
Exemple 2:
import numpy as np output=np.average(range(1,16), weights=range(15,0,-1)) output
Sortida:
5.666666666666667
Exemple 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
Sortida:
array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [ 9, 10, 11]]) array([ 1.44444444, 4.44444444, 7.44444444, 10.44444444])
En el codi anterior:
- Hem importat numpy amb el nom d'àlies np.
- Hem creat una matriu 'dades' utilitzant rang () i np.reshape() funció.
- Hem declarat la variable 'sortida' i assignat el valor retornat de mitjana() funció.
- Hem passat la matriu 'dades' , establiu l'eix a 1 i la matriu ponderada a la funció.
- Finalment, hem intentat imprimir el 'dades' i 'sortida'
A la sortida, mostra la mitjana dels elements de cada columna de la matriu.
Exemple 4:
import numpy as np data=np.arange(12).reshape((4,3)) data np.average(data, weights=[1./4, 3./4, 5./4])
Sortida:
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.