Numpy mean() vs average(): jaka jest różnica?


Do obliczenia średniej wartości tablicy w Pythonie możesz użyć funkcji np.mean() lub np.average() .

Oto subtelna różnica między tymi dwiema funkcjami:

  • np.mean zawsze oblicza średnią arytmetyczną.
  • np.average ma opcjonalny parametr wagi , którego można użyć do obliczenia średniej ważonej.

Poniższe przykłady pokazują, jak wykorzystać każdą funkcję w praktyce.

Przykład 1: Użyj np.mean() i np.average() bez wag

Załóżmy, że mamy w Pythonie następującą tabelę zawierającą siedem wartości:

 #create array of values
data = [1, 4, 5, 7, 8, 8, 10]

Możemy użyć np.mean() i np.average() do obliczenia średniej wartości tej tablicy:

 import numpy as np

#calculate average value of array
n.p. mean (data)

6.142857142857143

#calculate average value of array
n.p. average (data)

6.142857142857143

Obie funkcje zwracają dokładnie tę samą wartość.

W obu funkcjach do obliczenia średniej wykorzystano następujący wzór:

Średnia = (1 + 4 + 5 + 7 + 8 + 8 + 10) / 7 = 6,142857

Przykład 2: Użyj np.average() z wagami

Załóżmy jeszcze raz, że mamy w Pythonie następującą tablicę zawierającą siedem wartości:

 #create array of values
data = [1, 4, 5, 7, 8, 8, 10]

Do obliczenia średniej ważonej dla tej tablicy możemy użyć np.average() podając listę wartości parametrów wagowych :

 import numpy as np

#calculate weighted average of array
n.p. average (data, weights=(.1, .2, .4, .05, .05, .1, .1))

5.45

Średnia ważona okazuje się wynosić 5,45 .

Oto wzór używany przez np.average() do obliczenia tej wartości:

Średnia ważona = 1*.1 + 4*.2 + 5*.4 + 7*.05 + 8*.05 + 8*.1 + 10*.1 = 5.45 .

Zauważ, że do wykonania tego obliczenia nie mogliśmy użyć funkcji np.mean() , ponieważ funkcja ta nie posiada parametru wagi .

Pełne wyjaśnienie funkcji np.mean() i np.average() znajdziesz w dokumentacji NumPy.

Dodatkowe zasoby

Poniższe tutoriale wyjaśniają jak obliczyć inne wartości średnie w Pythonie:

Jak obliczyć średnie kroczące w Pythonie
Jak obliczyć średnią skumulowaną w Pythonie

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *