جارٍ تحميل الدرس...
في نافذة الطباعة اختر «حفظ كملف PDF» كوجهة.
Jupyter/Colab وNumPy وPandas وMatplotlib في سير عمل علم البيانات
Jupyter / Colab
بيئة تفاعلية
NumPy
مصفوفات
Pandas
تنظيف وتجميع
Matplotlib
تصور بياني
Jupyter: تشغيل بايثون تفاعليا، خلية بخليةGoogle Colab: دفاتر سحابية بلا إعداد محلي، مع وصول مجاني لوحدة معالجة الرسومات (GPU)NumPy: المصفوفات، العمليات المتجهة (vectorized)، الفهرسة والتقطيع وإعادة التشكيلPandas: السلاسل (Series) وإطارات البيانات (DataFrames)، التنظيف والتحويل والتجميعMatplotlib: رسوم خطية/أعمدة/تشتت/مدرجات تكرارية، التسميات والمفاتيح التوضيحيةNumPy: إنشاء المصفوفاتNumPy هي مكتبة الحوسبة العددية الأساسية في بايثونnp.array()import numpy as np
my_list = [0, 1, 2, 3, 4]
arr = np.array(my_list)
# array([0, 1, 2, 3, 4])
np.arange(0, 10, 3)
# array([0, 3, 6, 9])
np.zeros((5, 5))
np.ones((2, 4))NumPy: مصفوفات عشوائية ومتساوية التباعدnp.random.randint(low, high, size) لتوليد أعداد صحيحة عشوائيةnp.linspace(start, stop, num) لتوليد أعداد عشرية متساوية التباعدnp.random.randint(0, 100, (3, 3))
# array([[27, 73, 80],
# [53, 26, 91],
# [91, 54, 68]])
np.linspace(0, 10, 6)
# array([ 0., 2., 4., 6., 8., 10.])NumPy: التجميع وإعادة التشكيل.reshape() تغير أبعاد المصفوفة دون نسخ البياناتnp.random.seed(101)
arr2 = np.random.randint(0, 100, 10)
arr2.max() # 95
arr2.min() # 9
arr2.mean() # 60.8
arr2.argmin() # فهرس القيمة الأصغر -> 7
arr2.argmax() # فهرس القيمة الأكبر -> 0
arr2.reshape(2, 5)np.random.seed() تجعل النتائج العشوائية قابلة للتكرارNumPy: الفهرسة والتقطيعmat[row, col]: تختار صفا أو عمودا كاملا؛ التقطيع يعمل مثل قوائم بايثونmat = np.arange(0, 100).reshape(10, 10)
mat[0, 1] # عنصر واحد -> 1
mat[:, 0] # العمود الأول
mat[0, :] # الصف الأول
mat[0:3, 0:3] # كتلة 3×3 أعلى اليسار
mat[0:3, -3:-1] # الفهارس السالبة تحسب من النهايةPandas: السلاسل (Series)Series هي مصفوفة موسومة أحادية البعد (كعمود له فهرس)import pandas as pd
step_data = [3620, 7891, 9761, 3907, 4338, 5373]
step_counts = pd.Series(step_data, name='steps')
step_counts.index = pd.date_range('20240329', periods=6)
step_counts['2024-04-01'] # بحث بالتسمية -> 3907
step_counts[3] # بحث بالموضع -> 3907
step_counts.dtypes # int64Pandas: إطارات البيانات (DataFrames)DataFrame هو جدول ثنائي الأبعاد: صفوف + أعمدة مسماةtuples)، مع فهرس وأسماء أعمدة مخصصةcycling_data = [10.7, 0, None, 2.4, 15.3, 10.9]
joined_data = list(zip(step_data, cycling_data))
activity_df = pd.DataFrame(
joined_data,
index=pd.date_range('20240329', periods=6),
columns=['Walking', 'Cycling']
)NaNPandas: الفرق بين loc وilocactivity_df.loc['2024-04-01']
activity_df.loc['2024-04-01':'2024-04-03', ['Walking']]
activity_df.iloc[0, :] # الصف الأول، كل الأعمدة
activity_df.iloc[:2, 0] # أول صفين، العمود الأولPandas: تحميل بيانات حقيقيةpd.read_csv() تحمل مجموعة بيانات من ملف إلى DataFrame.head() تعرض أول الصفوف؛ .shape تعطي (عدد الصفوف، عدد الأعمدة)data = pd.read_csv('.\\Iris_Data.csv')
data.head()
data.shape # (150, 5)
data.shape[1] # 5 أعمدة
data['sepal_width'] # اختيار عمود واحد
data.loc[2, ['sepal_length']]Pandas: التصفية والأعمدة الجديدة والتجميع.groupby() تجمع الصفوف التي تشترك في قيمة معينةdata['species'] = data.species.str.replace('Iris-', '')
# تصفية الصفوف
data.loc[(data.sepal_width > 3.5)]
# عمود مشتق
data['sepal_area'] = data.sepal_length * data.sepal_width
# التجميع والعد
data.groupby('species').size()Pandas: الإحصاء الوصفيMean) = القيمة المتوسطة، الوسيط (Median) = القيمة الوسطى، المنوال (Mode) = القيمة الأكثر تكراراvariance) = مربع التشتتSEM) يقدر مدى بعد متوسط العينة عن المتوسط الحقيقيdata.sepal_width.mean() # 3.054
data.petal_length.median() # 4.35
data.petal_length.mode() # 1.5
data.petal_length.std() # 1.764
data.petal_length.var() # 3.113
data.petal_length.sem() # 0.144Matplotlib: رسوم أساسيةplt.hist() لعرض التوزيعات، plt.plot() للاتجاهات الخطية/التشتتimport matplotlib.pyplot as plt
ax = plt.axes()
ax.hist(data.petal_length, bins=25)
ax.set(xlabel='Petal Length (cm)',
ylabel='Frequency',
title='Distribution of Petal Lengths')
plt.plot(data.sepal_length, data.sepal_width, marker='o')
plt.xlabel("Petal Length (cm)")
plt.ylabel("sepal_width")NumPy تتيح حسابا عدديا سريعا ومتجها مع فهرسة وإعادة تشكيل مرنةPandas تنظم البيانات الجدولية بوصول قائم على التسمية (loc) أو الموضع (iloc)read_csv والتصفية والأعمدة الجديدة وgroupby تشكل جوهر سير عمل تنظيف البياناتMatplotlib تحول أعمدة DataFrame مباشرة إلى مدرجات تكرارية ورسوم خطية وتشتتJupyter/Colab هي البيئة التفاعلية المعيارية لسير العمل هذا بالكاملMahmoud Abas|المعمل الأول: مقدمة في بايثون لعلم البيانات