Pythonin numpy-moduuli tarjoaa funktion nimeltä numpy.average(), jota käytetään painotetun keskiarvon laskemiseen määritetyllä akselilla.
Syntaksi:
numpy.average(a, axis=None, weights=None, returned=False)
Parametrit:
x: array_like
Tämä parametri määrittää lähdetaulukon, jonka elementin keskiarvon haluamme laskea. Muuntaa yritetään, jos 'x' on taulukko.
akseli: int tai ei mitään tai tuple of ints (valinnainen)
Tämä parametri määrittää akselin, jota pitkin keskiarvo lasketaan. Oletusarvoisesti akseliksi on asetettu Ei mitään, mikä laskee lähdetaulukon kaikkien elementtien keskiarvon. Laskenta alkaa lopusta aloitusakseliin, kun akselin arvo on negatiivinen.
painot : array_like (valinnainen)
Tämä parametri määrittää taulukon, joka sisältää taulukon arvoihin liittyvät painot. Jokainen taulukkoelementtien arvo muodostaa yhdessä keskiarvon siihen liittyvän painon mukaan. Painotettu matriisi voi olla yksiulotteinen tai samanmuotoinen kuin syöttötaulukko. Jos taulukon elementtiin ei ole liitetty painoa, painoa käsitellään 1:nä kaikille elementeille.
palautettu: bool (valinnainen)
Oletuksena tämän parametrin arvo on False. Jos asetamme sen arvoksi True, palautetaan luku keskiarvosta ja painojen_summasta. Jos se on epätosi, keskiarvo palautetaan. Painotettu summa vastaa elementtien määrää, jos painotuksille ei ole arvoja.
js globaali muuttuja
Palautukset:
retval, [sum_of_weights]: array_type tai double
Tämä funktio palauttaa joko keskiarvon tai sekä keskiarvon että painojen_summan, jotka riippuvat palautetusta parametrista.
Nostaa:
ZeroDivisionError
Tämä virhe nousee, kun kaikki painot akselilla asetetaan nollaan.
Tyyppivirhe
Tämä virhe ilmenee, kun painotetun taulukon pituus ei ole sama kuin syötetaulukon muoto.
Esimerkki 1:
import numpy as np data = list(range(1,6)) output=np.average(data) data output
Lähtö:
[1, 2, 3, 4, 5] 3.0
Yllä olevassa koodissa:
- Olemme tuoneet numpyn aliasnimellä np.
- Olemme luoneet luettelon elementeistä 'data' .
- Olemme ilmoittaneet muuttujan 'lähtö' ja määritti palautetun arvon keskiverto() toiminto.
- Olemme ohittaneet listan 'data' funktiossa.
- Lopuksi yritimme tulostaa 'data' ja 'lähtö'
Tulosteessa se näyttää luettelon elementtien keskiarvon.
Esimerkki 2:
import numpy as np output=np.average(range(1,16), weights=range(15,0,-1)) output
Lähtö:
5.666666666666667
Esimerkki 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
Lähtö:
array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [ 9, 10, 11]]) array([ 1.44444444, 4.44444444, 7.44444444, 10.44444444])
Yllä olevassa koodissa:
- Olemme tuoneet numpyn aliasnimellä np.
- Olemme luoneet taulukon 'data' käyttämällä järjestää () ja np.reshape() toiminto.
- Olemme ilmoittaneet muuttujan 'lähtö' ja määritti palautetun arvon keskiverto() toiminto.
- Olemme läpäisseet joukon 'data' , aseta akseliksi 1 ja painotettu matriisi funktiossa.
- Lopuksi yritimme tulostaa 'data' ja 'lähtö'
Tulosteessa se näyttää taulukon kunkin sarakeelementin keskiarvon.
Esimerkki 4:
import numpy as np data=np.arange(12).reshape((4,3)) data np.average(data, weights=[1./4, 3./4, 5./4])
Lähtö:
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.