วิธีการคำนวณค่าเฉลี่ยเรขาคณิตใน python (พร้อมตัวอย่าง)


มีสองวิธีในการคำนวณค่าเฉลี่ยเรขาคณิตใน Python:

วิธีที่ 1: คำนวณค่าเฉลี่ยเรขาคณิตโดยใช้ SciPy

 from scipy. stats import gmean

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

วิธีที่ 2: คำนวณค่าเฉลี่ยเรขาคณิตโดยใช้ 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, ...])

ทั้งสองวิธีจะให้ผลลัพธ์ที่เหมือนกันทุกประการ

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติ

ตัวอย่างที่ 1: คำนวณค่าเฉลี่ยเรขาคณิตโดยใช้ SciPy

รหัสต่อไปนี้แสดงวิธีใช้ฟังก์ชัน gmean() ของไลบรารี SciPy เพื่อคำนวณค่าเฉลี่ยเรขาคณิตของอาร์เรย์ของค่า:

 from scipy. stats import gmean

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

4.81788719702029

ค่าเฉลี่ยเรขาคณิตกลายเป็น 4.8179 .

ตัวอย่างที่ 2: คำนวณค่าเฉลี่ยเรขาคณิตโดยใช้ NumPy

รหัสต่อไปนี้สาธิตวิธีการเขียนฟังก์ชันแบบกำหนดเองเพื่อคำนวณค่าเฉลี่ยทางเรขาคณิตโดยใช้ฟังก์ชันในตัวของไลบรารี 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

ค่าเฉลี่ยเรขาคณิตกลายเป็น 4.8179 ซึ่งตรงกับผลลัพธ์จากตัวอย่างก่อนหน้า

วิธีจัดการกับศูนย์

โปรดทราบว่าทั้งสองวิธีจะส่งกลับค่าศูนย์หากมีค่าศูนย์ในอาร์เรย์ที่คุณใช้งานอยู่

ดังนั้น คุณสามารถใช้โค้ดต่อไปนี้เพื่อลบศูนย์ออกจากอาร์เรย์ก่อนที่จะคำนวณค่าเฉลี่ยทางเรขาคณิต:

 #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]

แหล่งข้อมูลเพิ่มเติม

วิธีการคำนวณ Mean Square Error (MSE) ใน Python
วิธีการคำนวณค่าเฉลี่ยข้อผิดพลาดสัมบูรณ์ใน Python

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *