วิธีการคำนวณค่าเฉลี่ยเรขาคณิตใน 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