logo

numpy.average() i Python

numpy-modulen i Python tillhandahåller en funktion som kallas numpy.average(), som används för att beräkna det viktade medelvärdet längs den angivna axeln.

Syntax:

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

Parametrar:

x: array_like

Denna parameter definierar källmatrisen vars elements medelvärde vi vill beräkna. Omvandlingen kommer att göras om 'x' är en array.

axel: int eller ingen eller tupel av ints (valfritt)

Denna parameter definierar axeln längs vilken medelvärdet ska beräknas. Som standard är axeln inställd på Ingen, vilket kommer att beräkna medelvärdet av alla element i källmatrisen. Räknar börjar från slutet till startaxeln när axelns värde är negativt.

vikter: array_like (valfritt)

Den här parametern definierar en array som innehåller vikter associerade med arrayvärdena. Varje värde av arrayelement tillsammans utgör medelvärdet enligt dess associerade vikt. Den viktade matrisen kan vara endimensionell eller ha samma form som inmatningsmatrisen. När det inte finns någon vikt associerad med arrayelementet kommer vikten att behandlas som 1 för alla element.

returnerade: bool (valfritt)

Som standard är denna parameter inställd på False. Om vi ​​ställer in det som True, returneras en tuppel av medelvärde och summa_of_weights. Om det är falskt returneras medelvärdet. Den viktade summan är ekvivalent med antalet element om det inte finns några värden för vikter.

Returnerar:

retval, [sum_of_weights]: array_type eller double

Denna funktion returnerar antingen medelvärdet eller både medelvärdet och summa_of_weights som beror på den returnerade parametern.

Höjer:

ZeroDivisionError

Detta fel höjs när alla vikter längs axeln är nollställda.

Skrivfel

Detta fel höjs när längden på den viktade matrisen inte är densamma som formen på inmatningsmatrisen.

Exempel 1:

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

Produktion:

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

I ovanstående kod:

  • Vi har importerat numpy med alias np.
  • Vi har skapat en lista med element 'data' .
  • Vi har deklarerat variabeln 'produktion' och tilldelade det returnerade värdet på genomsnitt() fungera.
  • Vi har klarat listan 'data' i funktionen.
  • Till sist försökte vi skriva ut 'data' och 'produktion'

I utgången visar den genomsnittet av listelementen.

Exempel 2:

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

Produktion:

 5.666666666666667 

Exempel 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 

Produktion:

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

I ovanstående kod:

  • Vi har importerat numpy med alias np.
  • Vi har skapat en array 'data' använder sig av arrangera() och np.reshape() fungera.
  • Vi har deklarerat variabeln 'produktion' och tilldelade det returnerade värdet på genomsnitt() fungera.
  • Vi har passerat arrayen 'data' , ställ in axeln till 1 och viktad array i funktionen.
  • Till sist försökte vi skriva ut 'data' och 'produktion'

I utgången visar den medelvärdet av varje kolumnelement i arrayen.

Exempel 4:

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

Produktion:

 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. 

Obs: Utdata visar ett typfel: 'Axel måste anges när former av data och vikter skiljer sig' eftersom formen på 'vikter'-matrisen inte är densamma som indatamatrisen 'data'.