4.3 · علم البيانات : NumPy و pandas و Matplotlib

المستوى 4 · التخصصات (الويب، البيانات، الذكاء الاصطناعي، الأتمتة)

4.3علم البيانات : NumPy و pandas و Matplotlib

الهدف: تحليل البيانات مع pandas (الفحص والترشيح والتجميع) وعرضها مع Matplotlib — للإجابة عن سؤال مهني في 5 أسطر بدلا من يوم جدول.
الوقت المقدّر: 15 دقيقة · قراءة ذاتية · إذا كان لديك 5 دقائق فقط: اقرأ «الأساسي في 30 ثانية» + المخطط.

الأساسي في 30 ثانية

  • الثلاثي : NumPy يحسب بسرعة (مصفوفات موجهة)، وpandas يدبر الجداول (DataFrame)، وMatplotlib يُظهر (رسم واحد = رسالة واحدة).
  • منهجية نبيل : افحص أولا (head/info/describe/isna) ثم جمّع (groupby + sort = 80 % من التقارير) — أبدا العكس.
  • وجّه، ولا تحلق أبدا : (df.montant * 1.2).mean() يعوض الحلقات، وبسرعة ×100 على مليون سطر.

حالة مصغرة متسلسلة — نبيل يجيب في 5 أسطر

تطلب الإدارة من نبيل، في الجزائر : «ما أفضل 5 مدن لدينا هذا الثلاثي ؟» فبدلا من يوم فرز في جدول، حمّل نبيل ملف CSV مع pandas، وفحص (head و info و isna للثغرات)، وجمّع حسب المدينة مع groupby والفرز، ثم رسم مخطط أشرطة معنونا. سُلّم الجواب في ساعة، وقابل لإعادة الإنتاج الثلاثي القادم بإعادة إطلاق السكربت. ثالث محطة في الخيط الرابط : المحلل الذي يجيب بسرعة، ويثبت ما يقدمه.

تتمة حالتي 4.1-4.2 — نبيل يحلل المبيعات التي يعرضها.

1. NumPy : يحسب بسرعة، وpandas : يدبر الجداول

يستبدل NumPy الحلقات بـ مصفوفات موجهة محسوبة بلغة C : (a * 1.2).mean() يعالج مليون سطر دفعة واحدة — بسرعة ×100 وبعُشر أسطر الكود. وpandas هو الجدول القابل للبرمجة : إطار البيانات (DataFrame) (جدول أسطر/أعمدة) يُحمَّل (read_csv)، ويُفحَص (head, info, describe, isna)، ويُرشَّح (df[df.ville == "Alger"])، ويُجمَّع (groupby(...).agg(...)) ويُدمَج (merge). ويفحص نبيل دائما قبل التحليل : الأنواع والقيم المفقودة ومراتب المقادير أولا — فالتنظيف هو أطول خطوة وأهمها.

2. Matplotlib : اعرض، ودفتر Jupyter

يحول Matplotlib الأرقام إلى رسالة : رسم واحد = رسالة واحدة، مع عنوان يقول الخلاصة («الجزائر تحمل 40 % من رقم الأعمال» بدلا من «رقم الأعمال حسب المدينة»). ويكفي df.plot() للاستكشاف ؛ وشكل متقن (عنوان، تسميات، مصدر) يصلح للتواصل. ويمزج دفتر (notebook) Jupyter الكود والنتائج والسرد : مثالي لاستكشاف التحليل وروايته خطوة بخطوة. ويتذكر نبيل القاعدة : pandas يعوض الجدول للأحجام الكبيرة والقابل لإعادة الإنتاج ؛ ويبقى الجدول مثاليا للأحجام الصغيرة المرئية السريعة.

خطأ شائع في الفهم: «مزيد من الرسوم = تحليل أفضل». خطأ. فعشرة رسوم دون رسالة تُغرق الخلاصة التي كانت ثلاثة أرقام مختارة جيدا ستحملها. فالتحليل هو الإجابة عن سؤال واحد بالأدلة الدنيا ؛ والرسم ليس سوى الخطوة الأخيرة — الإظهار — بعد الفحص والتجميع.
منهجية التحليل في 4 أوقات حمّل ← افحص ← جمّع ← اعرض التحميل read_csv : يصيرCSV إطار بياناتالفحص head و info وdescribe و isna (الثغرات)التجميع groupby + الفرز: الجواب المرقمالعرض رسم معنوَن واحد= رسالة واحدة
حمّل ← افحص ← جمّع ← اعرض
نص المخطط (SEO / قارئات الشاشة / الترجمة): 1) يحمّل نبيل ملف CSV في إطار بيانات مع read_csv. 2) يفحص : head و info و describe و isna لرصد الثغرات والأنواع. 3) يجمّع مع groupby والفرز للحصول على الجواب. 4) يرسم مخططا بعنوان-رسالة. الدرس : افحص قبل التحليل، ووجّه بدلا من التحليق، واعرض رسالة واحدة لكل رسم.

هل تعلم ؟

يدين pandas باسمه إلى «panel data»، مصطلح في الاقتصاد القياسي — لا إلى الدب.
صحيح : أداة نبيل المفضلة غمزة من اقتصادي.

الدب ليس سوى التميمة غير الرسمية لمحللي البيانات.

🔎 مثال ملموس — 🔎 مثال ملموس — أفضل مدن نبيل

تحليل نبيل الكامل في 5 أسطر :

df = pd.read_csv("ventes.csv")
print(df.info(), df.isna().sum())      # افحص أولا
top = df.groupby("ville")["montant"].sum().sort_values(ascending=False)
print(top.head())                          # الجواب المرقم
top.head().plot(kind="bar", title="الجزائر تحمل جوهر رقم الأعمال")

القراءة : افحص ← جمّع ← اعرض، بهذا الترتيب.

الدرس : groupby + الفرز = 80 % من تقارير النشاط.

مفردات القسم

NumPy
مكتبة حساب على مصفوفات موجهة (عمليات بلغة C) : تعوض حلقات بايثون، وبسرعة ×100 على الأحجام الكبيرة.

مثال بسيط: يطبق نبيل تخفيضا على مليون مبلغ في سطر واحد.

ما ليس كذلك: حلقة for تعالج الأسطر واحدا واحدا.

رد فعل: متى حلقت على أرقام، ابحث عن العملية الموجهة.

pandas / إطار البيانات (DataFrame)
جدول قابل للبرمجة : إطار البيانات (جدول أسطر/أعمدة) يحمّل البيانات ويرشحها ويجمّعها ويدمجها — read_csv و groupby و merge.

مثال بسيط: يجمّع نبيل مبيعاته حسب المدينة في سطرين.

ما ليس كذلك: فرز يدوي مكرر في جدول.

رد فعل: افحص (head/info/isna) قبل أي تحليل.

التجميع (groupby) + التجميع
تجميع الأسطر حسب فئة ثم تلخيصها (المجموع، المعدل) : الخطوة التي تنتج 80 % من التقارير.

مثال بسيط: رقم الأعمال حسب المدينة عند نبيل : groupby المدينة، ومجموع المبالغ، والفرز.

ما ليس كذلك: مجاميع معاد حسابها يدويا عند كل طلب.

رد فعل: سؤال حسب فئة ؟ groupby أولا.

Matplotlib
مكتبة رسوم : رسم واحد = رسالة واحدة، مع عنوان يقول الخلاصة.

مثال بسيط: يعنون نبيل مخطط أشرطته بالخلاصة، لا مجرد «رقم الأعمال حسب المدينة».

ما ليس كذلك: عشرة رسوم زخرفية دون رسالة.

رد فعل: عنوان-رسالة وتسميات ومصدر — وإلا فهو زخرفة.

في التطبيق — عمليا — تحليل CSV من البداية إلى النهاية

  1. حمّل ملفا CSV مع pd.read_csv وافحص : head و info و describe و isna().sum() — ودوّن الأنواع والثغرات.
  2. نظف الحد الأدنى الحيوي : أنواع التواريخ/المبالغ، والقيم المفقودة مبلغ عنها أو معالجة.
  3. رشّح (df[condition]) ثم جمّع (groupby + agg + الفرز) للإجابة عن سؤال دقيق واحد.
  4. ارسم مخططا واحدا بعنوان-رسالة، ثم أعد إطلاق السكربت كله دفعة واحدة لتثبت أنه قابل لإعادة الإنتاج.
تجيب عن سؤال مهني بسكربت قابل لإعادة الإنتاج : مفحوص ومجمّع ومعروض — في دقائق بدلا من يوم.

نص جاهز للقول — عرض تحليله (30 ثانية)

«معكم نبيل : حمّلت المبيعات، وفحصت الثغرات والأنواع، ثم جمّعت حسب المدينة — فالجزائر تحمل جوهر الثلاثي. يُعاد إطلاق السكربت كما هو الثلاثي القادم، والرسم يقول الخلاصة في عنوانه.»

يُقال في مراجعة النشاط ؛ واعرض الرسم لا الكود.

نموذج نسخ-لصق — تحليل pandas (كود مختبر)

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("ventes.csv")

# 1. افحص أولا : الأنواع والثغرات ومراتب المقادير
print(df.head())
print(df.info())
print(df.describe())
print(df.isna().sum())

# 2. رشّح : مبيعات الجزائر هذا الثلاثي

alger = df[df["ville"] == "Alger"]

# 3. جمّع : رقم الأعمال حسب المدينة، مرتبا (80 % من التقارير)
top = df.groupby("ville")["montant"].sum().sort_values(ascending=False)
print(top.head())

# 4. اعرض : رسم واحد = رسالة واحدة
top.head().plot(kind="bar", title="الجزائر تحمل جوهر رقم الأعمال")
plt.tight_layout()
plt.savefig("top-villes.png")

ملف صغير

بضع مئات من الأسطر ؟ يبقى الجدول أسرع — واحتفظ بـ pandas للقابل لإعادة الإنتاج.

تقرير شهري

مثل نبيل : سكربت يحمّل ويفحص ويجمّع ويصدّر — يُعاد إطلاقه كل شهر دون لمسه.

مليون سطر

وجّه كل شيء (لا for أبدا على الأسطر) : فـ NumPy/pandas بلغة C تنجز في ثوان ما تنجزه الحلقات في دقائق.

استكشاف حر

اشتغل في دفتر Jupyter : الكود والنتائج والسرد جنبا إلى جنب للبحث قبل الاستنتاج.

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

✓ ممارسات جيدة

  • افحص (head/info/describe/isna) قبل التحليل.
  • وجّه : لا حلقة أبدا على ملايين الأسطر.
  • رسم واحد = رسالة واحدة، وعنوان يستنتج.

✗ أخطاء شائعة

  • التحليق بـ for على ملايين الأسطر.
  • التحليل دون فحص الأنواع والثغرات.
  • تكثير الرسوم دون رسالة.

النقاط الأساسية

  • الثلاثي : NUMPY (حساب موجه) / PANDAS (جداول) / MATPLOTLIB (رسوم).
  • إطار البيانات = جدول قابل للبرمجة : read_csv و head و describe و groupby و merge.
  • المنهجية : افحص ← جمّع ← اعرض ؛ والتنظيف = أطول خطوة.
  • JUPYTER = سرد التحليل ؛ ورسم واحد = رسالة واحدة بعنوان-خلاصة.

تحدي 48 ساعة — طبق غدا

خذ ملف CSV حقيقيا واحدا من عملك : افحصه، وأجب عن سؤال واحد عبر groupby، وسلّم رسم مخططا معنونا-رسالة.

قائمة الخروج من القسم
  • أستطيع ذكر NumPy و pandas/إطار البيانات و Matplotlib.
  • أعرف فحص CSV ثم تجميعه.
  • عندي تحليل قابل لإعادة الإنتاج مع رسم-رسالة واحد.
تقييم ذاتي 1-5 : هل فحصت قبل الاستنتاج ؟هل يُعاد إطلاق سكربتي دفعة واحدة دون تعديل ؟

أسئلة شائعة

هل يعوض pandas برنامج Excel ؟

للأحجام الكبيرة والقابل لإعادة الإنتاج : نعم — فسكربت يعيد في ثوان ما يعيده الجدول في ساعات، دون خطأ نسخ-لصق. وللأحجام الصغيرة المرئية والسريعة : لا — فيبقى الجدول لا يُضاهى. يستعمل نبيل الاثنين : pandas للتقارير الشهرية، والجدول لنظرة سريعة.

هل يلزم التفوق في الرياضيات لعلم البيانات ؟

لا في هذه المرحلة : تكفي أسس الإحصاء (المعدل والوسيط والتوزيع) للفحص والتجميع مع pandas. وتصير الرياضيات المتقدمة (الجبر والاحتمالات) مفيدة في 4.4 لاختيار نماذج تعلم الآلة وضبطها.

تحقّق من فهمك

ما البنية في قلب pandas ؟

موارد إضافية (اختياري، للتعمّق أكثر)

اختبار المستوى 4أسئلة جديدة وأصعب للتحقق من مكتسباتك