logo

numpy.average() Pythonissa

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. 

Huomautus: Tulos näyttää tyyppivirheen: 'Akseli on määritettävä, kun tietojen ja painojen muodot eroavat', koska 'painot'-taulukon muoto ei ole sama kuin syötetaulukon 'data'.