logo

numpy.average() in Python

De numpy-module van Python biedt een functie genaamd numpy.average(), die wordt gebruikt voor het berekenen van het gewogen gemiddelde langs de opgegeven as.

Syntaxis:

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

Parameters:

x: array_like

Deze parameter definieert de bronarray waarvan we het gemiddelde van het element willen berekenen. Er wordt geprobeerd de conversie uit te voeren als 'x' een array is.

as: int of Geen of tuple van ints (optioneel)

Deze parameter definieert de as waarlangs het gemiddelde wordt berekend. Standaard is de as ingesteld op Geen, waardoor het gemiddelde van alle elementen van de bronarray wordt berekend. Tellingen beginnen vanaf het einde tot aan de startas wanneer de waarde van de as negatief is.

gewichten: array_like(optioneel)

Deze parameter definieert een array met gewichten die zijn gekoppeld aan de arraywaarden. Elke waarde van array-elementen samen vormt het gemiddelde op basis van het bijbehorende gewicht. De gewogen array kan eendimensionaal zijn of dezelfde vorm hebben als de invoerarray. Als er geen gewicht aan het array-element is gekoppeld, wordt het gewicht voor alle elementen als 1 behandeld.

geretourneerd: bool (optioneel)

Standaard is deze parameter ingesteld op False. Als we dit instellen op True, wordt een tupel van gemiddelde en som_van_gewichten geretourneerd. Als de waarde Onwaar is, wordt het gemiddelde geretourneerd. De gewogen som is gelijk aan het aantal elementen als er geen waarden voor gewichten zijn.

Geeft terug:

retval, [sum_of_weights]: array_type of double

Deze functie retourneert het gemiddelde of zowel het gemiddelde als de som_van_gewichten die afhankelijk zijn van de geretourneerde parameter.

Verhoogt:

ZeroDivisionFout

Deze fout treedt op als alle gewichten langs de as op nul zijn ingesteld.

TypeError

Deze fout treedt op als de lengte van de gewogen array niet hetzelfde is als de vorm van de invoerarray.

Voorbeeld 1:

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

Uitgang:

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

In de bovenstaande code:

  • We hebben numpy geïmporteerd met aliasnaam np.
  • We hebben een lijst met elementen gemaakt 'gegevens' .
  • We hebben de variabele gedeclareerd 'uitvoer' en de geretourneerde waarde toegewezen van gemiddeld() functie.
  • We hebben de lijst doorstaan 'gegevens' in de functie.
  • Ten slotte hebben we geprobeerd de 'gegevens' En 'uitvoer'

In de uitvoer wordt het gemiddelde van de lijstelementen weergegeven.

Voorbeeld 2:

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

Uitgang:

 5.666666666666667 

Voorbeeld 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 

Uitgang:

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

In de bovenstaande code:

  • We hebben numpy geïmporteerd met aliasnaam np.
  • We hebben een array gemaakt 'gegevens' gebruik makend van regelen() En np.reshape() functie.
  • We hebben de variabele gedeclareerd 'uitvoer' en de geretourneerde waarde toegewezen van gemiddeld() functie.
  • We zijn de array gepasseerd 'gegevens' , stel de as in op 1 en gewogen array in de functie.
  • Ten slotte hebben we geprobeerd de 'gegevens' En 'uitvoer'

In de uitvoer wordt het gemiddelde van elke kolomelementen in de array weergegeven.

Voorbeeld 4:

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

Uitgang:

 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. 

Opmerking: De uitvoer toont een typefout: 'As moet worden opgegeven wanneer vormen van gegevens en gewichten verschillen' omdat de vorm van de 'weights'-array niet hetzelfde is als de invoerarray 'data'.