Cara menghitung rata-rata geometris dengan python (dengan contoh)


Ada dua cara untuk menghitung mean geometrik dengan Python:

Metode 1: Hitung Rata-Rata Geometris Menggunakan SciPy

 from scipy. stats import gmean

#calculate geometric mean
gmean([value1, value2, value3, ...])

Metode 2: Hitung Rata-rata Geometris Menggunakan NumPy

 import numpy as np

#define custom function
def g_mean(x):
    a = np. log (x)
    return np. exp ( a.mean ())

#calculate geometric mean
g_mean([value1, value2, value3, ...])

Kedua metode akan memberikan hasil yang persis sama.

Contoh berikut menunjukkan cara menggunakan masing-masing metode ini dalam praktik.

Contoh 1: Hitung Rata-Rata Geometris Menggunakan SciPy

Kode berikut menunjukkan cara menggunakan fungsi gmean() perpustakaan SciPy untuk menghitung rata-rata geometrik array nilai:

 from scipy. stats import gmean

#calculate geometric mean
gmean([1, 4, 7, 6, 6, 4, 8, 9])

4.81788719702029

Rata-rata geometriknya adalah 4,8179 .

Contoh 2: Hitung Rata-rata Geometris Menggunakan NumPy

Kode berikut menunjukkan cara menulis fungsi kustom untuk menghitung rata-rata geometrik menggunakan fungsi bawaan perpustakaan NumPy :

 import numpy as np

#define custom function
def g_mean(x):
    a = np. log (x)
return np. exp ( a.mean ())

#calculate geometric mean
g_mean([1, 4, 7, 6, 6, 4, 8, 9])

4.81788719702029

Rata-rata geometriknya adalah 4,8179 , yang cocok dengan hasil dari contoh sebelumnya.

Cara menangani angka nol

Perhatikan bahwa kedua metode akan mengembalikan angka nol jika ada angka nol di array yang Anda kerjakan.

Jadi, Anda dapat menggunakan potongan kode berikut untuk menghilangkan angka nol dari array sebelum menghitung rata-rata geometrik:

 #create array with some zeros
x = [1, 0, 0, 6, 6, 0, 8, 9]

#remove zeros from array 
x_new = [i for i in x if i != 0]

#view updated array
print (x_new)

[1, 6, 6, 8, 9]

Sumber daya tambahan

Cara Menghitung Mean Square Error (MSE) dengan Python
Cara Menghitung Rata-Rata Kesalahan Absolut dengan Python

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *