7 طرق لحساب المتوسطات في بايثون: من الأساسيات إلى المتقدم

1. الطريقة الأساسية لحساب المتوسط في بايثون

الطريقة الأكثر أساسية لحساب متوسط البيانات في بايثون هي دمج دالة sum() مع دالة len(). بما أن هذا يستخدم الدوال القياسية المدمجة في بايثون، لا تحتاج إلى مكتبات إضافية، مما يجعلها سهلة جداً للمبتدئين لفهمها.

طريقة حساب المتوسط الأساسية

المتوسط يتم الحصول عليه بقسمة مجموع البيانات على عدد نقاط البيانات. على سبيل المثال، الكود لحساب متوسط الأرقام المخزنة في قائمة يبدو هكذا:

# Sample data
numbers = [10, 20, 30, 40, 50]

# Calculate the sum
total = sum(numbers)

# Calculate the average
average = total / len(numbers)

print(f"Data: {numbers}")
print(f"Average: {average}")

شرح الكود

في هذا الكود، نستخدم أول sum() لجمع جميع القيم في القائمة numbers، ثم نستخدم len() للحصول على عدد العناصر في القائمة. أخيراً، نقسم المجموع على عدد العناصر للحصول على المتوسط. دالة len() تُعيد طول القائمة، لذا يمكن حساب المتوسط بدقة بغض النظر عن عدد نقاط البيانات.

نظرًا لأن هذه الطريقة تستخدم فقط ميزات بايثون الأساسية، فإنها توفر ميزة المرونة والقابلية للتكيف. كما أنها النهج الأمثل عند التعامل مع مجموعات بيانات صغيرة.

2. حساب المتوسط باستخدام وحدة الإحصاءات (statistics)

يتضمن بايثون وحدة المكتبة القياسية `، مما يجعل حساب المتوسطات أسهل. دالةstatistics.mean()` تأخذ كائنات قابلة للتكرار مثل القوائم أو tuples وتحسب متوسطها.

كيفية حساب المتوسط باستخدام statistics.mean()

import statistics

# Sample data
numbers = [10, 20, 30, 40, 50]

# Calculate the average
average = statistics.mean(numbers)

print(f"Data: {numbers}")
print(f"Average: {average}")

شرح الكود

هذا الكود يستخدم دالة mean() من وحدة statistics للحصول على المتوسط. هذه الدالة تحسب متوسط مجموعة من الأرقام بغض النظر عن نوع البيانات أو تنسيقها. وبما أنها مقدمة من المكتبة القياسية، لا يلزم أي تثبيت، ويمكن استخدامها فوراً.

نظرًا لأن statistics.mean() تستخدم داخليًا sum() و len(), فإن النتيجة هي نفسها كما في الطريقة المذكورة أعلاه، لكن الكود يصبح أكثر اختصارًا ويقلل من فرص الأخطاء.

RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

3. حساب المتوسط بسرعة باستخدام وحدة numpy

عند التعامل مع كميات كبيرة من البيانات أو إجراء حسابات عددية بشكل متكرر، تكون وحدة numpy في بايثون مناسبة. numpy هي مكتبة تمكّن من معالجة البيانات العددية بكفاءة وإجراء الحسابات، وتتفوق خصوصًا في معالجة مجموعات البيانات الضخمة.

كيفية حساب المتوسط باستخدام numpy.mean()

import numpy as np

# Sample data
numbers = np.array([10, 20, 30, 40, 50])

# Calculate the average
average = np.mean(numbers)

print(f"Data: {numbers}")
print(f"Average: {average}")

شرح الكود

هنا، نستخدم numpy.array لتحويل قائمة إلى مصفوفة numpy ونحسب المتوسط باستخدام دالة np.mean(). مصفوفات numpy، على عكس القوائم، تسمح بالعمليات العددية المباشرة، مما يسرّع الحساب خاصةً عندما يكون حجم البيانات كبيرًا.

بالإضافة إلى ذلك، باستخدام دالة numpy.average() يمكنك حساب المتوسطات المرجحة، مما يدعم مجموعة متنوعة من التحليلات. إذا كنت بحاجة إلى معالجة مجموعات بيانات كبيرة بسرعة أو تطبيق وزن على البيانات، فإن numpy الخيار الأمثل.

4. حساب المتوسط للبيانات الجدولية باستخدام pandas

مكتبة تحليل البيانات في بايثون pandas تتفوق في التعامل مع البيانات الجدولية. باستخدام كائن pandas.DataFrame، يمكنك بسهولة حساب متوسط مجموعات البيانات التي تمتد عبر عدة أعمدة.

كيفية حساب المتوسط باستخدام DataFrame.mean()

import pandas as pd

# Create a sample DataFrame
data = {'A': [10, 20, 30, 40, 50],
        'B': [15, 25, 35, 45, 55]}
df = pd.DataFrame(data)

# Compute the mean of each column
average = df.mean()

print(f"DataFrame:
{df}")
print(f"Mean of each column:
{average}")

شرح الكود

في هذا المثال، نقوم بإنشاء DataFrame ذو عمودين df ونستخدم الدالة df.mean() لحساب متوسط كل عمود. تُعد DataFrames مناسبة جدًا لمعالجة البيانات الجدولية، مما يسمح بإجراء حسابات إحصائية لكل عمود. على سبيل المثال، إذا كنت بحاجة إلى التجميع حسب الفئة، يمكنك استخدام طريقة groupby للتجميع بناءً على شروط محددة.
pandas هي واحدة من أكثر المكتبات استخدامًا في تحليل البيانات ويمكنها التعامل مع معالجة بيانات معقدة.

年収訴求

5. طرق حساب المتوسط الخاصة (المتوسط المرجح، المتوسط التوافقي، المتوسط الهندسي)

بالإضافة إلى المتوسط الحسابي العادي، توجد طرق تجميع مخصصة لظروف معينة. أدناه، نقدم تقنيات تجميع خاصة مثل المتوسط المرجح، المتوسط التوافقي، والمتوسط الهندسي.

كيفية حساب المتوسط المرجح

يُستخدم المتوسط المرجح عندما ترغب في إعطاء أهمية مختلفة (أوزان) لكل نقطة بيانات. على سبيل المثال، يمكن للدالة numpy.average() حساب المتوسط المرجح بسهولة.

import numpy as np

# Sample data and weights
data = [10, 20, 30, 40, 50]
weights = [0.1, 0.2, 0.4, 0.2, 0.1]

# Calculate the weighted average
weighted_average = np.average(data, weights=weights)

print(f"Data: {data}")
print(f"Weights: {weights}")
print(f"Weighted average: {weighted_average}")

كيفية حساب المتوسط التوافقي

المتوسط التوافقي مناسب للتعامل مع النسب أو السرعات، مثل حساب السرعة المتوسطة للسفر نفس المسافة بسرعات مختلفة. استخدام الدالة statistics.harmonic_mean() يجعل الحساب سهلًا.

import statistics

# Sample data
data = [10, 20, 30]

# Calculate the harmonic mean
harmonic_mean = statistics.harmonic_mean(data)

print(f"Data: {data}")
print(f"Harmonic mean: {harmonic_mean}")

كيفية حساب المتوسط الهندسي

المتوسط الهندسي يُستخدم لمعدلات النمو وحساب الفوائد المركبة. في بايثون، يمكنك حسابه بسهولة باستخدام وحدة math، ويمكن أيضًا الحصول عليه بكفاءة باستخدام numpy.

import numpy as np

# Sample data
data = [1.1, 1.3, 1.5]

# Calculate the geometric mean
geometric_mean = np.prod(data) ** (1 / len(data))

print(f"Data: {data}")
print(f"Geometric mean: {geometric_mean}")

6. تقنيات معالجة الأخطاء وتحسين الدقة

عند حساب المتوسط، يجب مراعاة تحسين الدقة ومعالجة الأخطاء. على وجه الخصوص، يتطلب العمل مع الأعداد العشرية (النقطة العائمة) حذرًا إضافيًا. توفر بايثون أدوات لمعالجة هذه المشكلات المتعلقة بالدقة.

مشكلات دقة الأعداد العشرية (النقطة العائمة)

عند إجراء حسابات باستخدام الأعداد العشرية (النقطة العائمة)، قد تحتوي النتائج على أخطاء. إذا كانت الدقة أمرًا حاسمًا، فإن استخدام وحدة decimal يكون فعالًا.

from decimal import Decimal

# Sample data
data = [Decimal('0.1'), Decimal('0.2'), Decimal('0.3')]

# Calculate the average
average = sum(data) / len(data)

print(f"Data: {data}")
print(f"Average (improved precision): {average}")

أساسيات معالجة الأخطاء

على سبيل المثال، محاولة حساب متوسط على قائمة فارغة ستؤدي إلى حدوث خطأ. في مثل هذه الحالات، من المهم تضمين معالجة أخطاء تتحقق مما إذا كانت القائمة غير فارغة.

# Sample data (including an empty list case)
data = []

# Error checking
if len(data) > 0:
    average = sum(data) / len(data)
    print(f"Average: {average}")
else:
    print("Error: Data is empty")

7. الخلاصة

في هذه المقالة، شرحنا طرقًا مختلفة لحساب المتوسط في بايثون. تم استخدام sum() و len() للعمليات الأساسية، وقد قدمنا مجموعة واسعة من الأساليب المتقدمة باستخدام وحدة statistics و numpy و pandas. باختيار النهج الأمثل بناءً على نوع البيانات والغرض، يمكنك تحقيق تحليل بيانات أكثر دقة وكفاءة.
كخطوة تالية، سيساعدك تعلم كيفية تصور البيانات—مثل رسم المتوسطات المحسوبة باستخدام matplotlib—في الحصول على فهم أعمق للبيانات.

年収訴求