logo

numpy.average() Pythonban

A Python numpy modulja biztosít egy numpy.average() függvényt, amely a súlyozott átlag kiszámítására szolgál a megadott tengely mentén.

Szintaxis:

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

Paraméterek:

x: array_like

Ez a paraméter határozza meg azt a forrástömböt, amelynek elemeinek átlagát ki szeretnénk számítani. A rendszer megkísérli az átalakítást, ha az 'x' egy tömb.

tengely: int vagy None vagy ints sor (opcionális)

különbség a tömb és a tömblista között

Ez a paraméter határozza meg azt a tengelyt, amely mentén az átlagot számítani kell. Alapértelmezés szerint a tengely beállítása Nincs, ami a forrástömb összes elemének átlagát számítja ki. A számlálások a végétől a kezdőtengelyig indulnak, ha a tengely értéke negatív.

súlyok : array_like (opcionális)

Ez a paraméter a tömbértékekhez társított súlyokat tartalmazó tömböt határoz meg. A tömbelemek minden értéke együttesen adja az átlagot a hozzájuk tartozó súlynak megfelelően. A súlyozott tömb lehet egydimenziós vagy ugyanolyan alakú, mint a bemeneti tömb. Ha nincs súly hozzárendelve a tömbelemhez, akkor a súly minden elemnél 1-ként lesz kezelve.

visszaadott: bool (nem kötelező)

Alapértelmezés szerint ez a paraméter False. Ha igaznak állítjuk be, akkor az átlag és a súlyok_összege egy sorát adjuk vissza. Ha hamis, akkor a rendszer az átlagot adja vissza. A súlyozott összeg megegyezik az elemek számával, ha nincsenek súlyértékek.

stdin c programozás

Visszaküldés:

retval, [súlyok_összege]: array_type vagy double

Ez a függvény vagy az átlagot adja vissza, vagy az átlagot és a súlyok_összegét is, amelyek a visszaadott paramétertől függenek.

Emeli:

ZeroDivisionError

Ez a hiba akkor lép fel, ha a tengely mentén minden súly nullára van állítva.

TypeError

hogyan kell olvasni csv fájlból java-ban

Ez a hiba akkor lép fel, ha a súlyozott tömb hossza nem egyezik meg a bemeneti tömb alakjával.

1. példa:

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

Kimenet:

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

A fenti kódban:

ábécé számokhoz
  • Importáltuk a numpy-t np aliasnévvel.
  • Összeállítottunk egy listát az elemekről 'adat' .
  • Deklaráltuk a változót 'Kimenet' és hozzárendelte a visszaadott értékét átlagos() funkció.
  • A listán túljutottunk 'adat' a függvényben.
  • Végül megpróbáltuk kinyomtatni a 'adat' és 'Kimenet'

A kimenetben a listaelemek átlagát mutatja.

2. példa:

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

Kimenet:

 5.666666666666667 

3. példa:

 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 

Kimenet:

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

A fenti kódban:

  • Importáltuk a numpy-t np aliasnévvel.
  • Létrehoztunk egy tömböt 'adat' segítségével arange() és np.reshape() funkció.
  • Deklaráltuk a változót 'Kimenet' és hozzárendelte a visszaadott értékét átlagos() funkció.
  • Túljutottunk a tömbön 'adat' , állítsa az tengelyt 1-re, és a súlyozott tömböt a függvényben.
  • Végül megpróbáltuk kinyomtatni a 'adat' és 'Kimenet'

A kimenetben a tömb egyes oszlopelemeinek átlagát mutatja.

4. példa:

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

Kimenet:

 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. 

Megjegyzés: A kimenet típushibát mutat: 'A tengelyt meg kell adni, ha az adatok és a súlyok alakja különbözik', mivel a 'súlyok' tömb alakja nem egyezik meg a 'data' bemeneti tömb alakjával.