كيفية حساب المتوسط الهندسي في لغة بايثون (مع أمثلة)
هناك طريقتان لحساب الوسط الهندسي في بايثون:
الطريقة الأولى: حساب المتوسط الهندسي باستخدام SciPy
from scipy. stats import gmean #calculate geometric mean gmean([value1, value2, value3, ...])
الطريقة الثانية: حساب المتوسط الهندسي باستخدام 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]
مصادر إضافية
كيفية حساب متوسط الخطأ المربع (MSE) في بايثون
كيفية حساب متوسط الخطأ المطلق في بايثون