logo

numpy.average() em Python

O módulo numpy do Python fornece uma função chamada numpy.average(), usada para calcular a média ponderada ao longo do eixo especificado.

Sintaxe:

 numpy.average(a, axis=None, weights=None, returned=False) 

Parâmetros:

x: array_like

Este parâmetro define o array de origem cuja média do elemento queremos calcular. A conversão será tentada se 'x' for um array.

eixo: int ou None ou tupla de ints (opcional)

Este parâmetro define o eixo ao longo do qual a média será calculada. Por padrão, o eixo é definido como Nenhum, o que calculará a média de todos os elementos do array de origem. As contagens começam do eixo final até o eixo inicial quando o valor do eixo é negativo.

pesos: array_like (opcional)

Este parâmetro define uma matriz contendo pesos associados aos valores da matriz. Cada valor dos elementos do array juntos faz a média de acordo com seu peso associado. A matriz ponderada pode ser unidimensional ou ter o mesmo formato da matriz de entrada. Quando não há peso associado ao elemento do array, o peso será tratado como 1 para todos os elementos.

retornado: bool(opcional)

concatenar string java

Por padrão, esse parâmetro é definido como False. Se definirmos como True, então uma tupla de média e soma_de_pesos será retornada. Se for False, a média será retornada. A soma ponderada é equivalente ao número de elementos se não houver valores para pesos.

Retorna:

retval, [soma_de_pesos]: tipo_array ou duplo

Esta função retorna a média ou a média e a soma_de_pesos que dependem do parâmetro retornado.

Levanta:

Erro ZeroDivision

Este erro aumenta quando todos os pesos ao longo do eixo são definidos como zero.

Erro de tipo

Este erro é gerado quando o comprimento da matriz ponderada não é igual ao formato da matriz de entrada.

Exemplo 1:

 import numpy as np data = list(range(1,6)) output=np.average(data) data output 

Saída:

 [1, 2, 3, 4, 5] 3.0 

No código acima:

  • Importamos numpy com o nome alternativo np.
  • Criamos uma lista de elementos 'dados' .
  • Declaramos a variável 'saída' e atribuiu o valor retornado de média() função.
  • Passamos a lista 'dados' na função.
  • Por fim, tentamos imprimir o 'dados' e 'saída'

Na saída, mostra a média dos elementos da lista.

Exemplo 2:

 import numpy as np output=np.average(range(1,16), weights=range(15,0,-1)) output 

Saída:

 5.666666666666667 

Exemplo 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 

Saída:

 array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [ 9, 10, 11]]) array([ 1.44444444, 4.44444444, 7.44444444, 10.44444444]) 

No código acima:

  • Importamos numpy com o nome alternativo np.
  • Criamos uma matriz 'dados' usando laranja() e np.reshape() função.
  • Declaramos a variável 'saída' e atribuiu o valor retornado de média() função.
  • Passamos a matriz 'dados' , defina o eixo como 1 e a matriz ponderada na função.
  • Por fim, tentamos imprimir o 'dados' e 'saída'

Na saída, mostra a média de cada elemento da coluna na matriz.

Exemplo 4:

 import numpy as np data=np.arange(12).reshape((4,3)) data np.average(data, weights=[1./4, 3./4, 5./4]) 

Saída:

 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. 

Nota: A saída mostra um erro de tipo: 'O eixo deve ser especificado quando as formas dos dados e os pesos diferem' porque a forma da matriz 'pesos' não é igual à matriz de entrada 'dados'.