جارٍ تحميل الدرس...
في نافذة الطباعة اختر «حفظ كملف PDF» كوجهة.
معمل عملي - بايثون لعلوم البيانات
أساسيات NumPy وPandas وMatplotlib لتعلم الآلة
Jupyter وGoogle Colab: بيئات بايثون التفاعليةNumPy: المصفوفات والعمليات العددية المتجهة (Vectorized)Pandas: السلاسل (Series) وإطارات البيانات (DataFrames) لمعالجة البياناتMatplotlib: الرسوم الخطية، والشريطية، والمبعثرة مع خيارات التخصيصJupyter / Google Colab
بيئات تفاعلية
NumPy
مصفوفات ومتجهات
Pandas
Series وDataFrames
Matplotlib
رسوم بيانية
NumPy
np.array() تحول قائمة بايثون إلى مصفوفة ndarrayimport numpy as np
arr = np.array([0, 1, 2, 3, 4])
np.arange(0, 10) # [0 1 2 ... 9]
np.arange(0, 10, 3) # [0 3 6 9]NumPy
zeros/ones تبنيان مصفوفات مملوءة بشكل محددrandom.randint وlinspace تولدان قيما عشوائية أو متباعدة بانتظامnp.zeros((5, 5))
np.ones((2, 4))
np.random.randint(0, 100, (3, 3))
np.linspace(0, 10, 6) # 6 evenly spaced points from 0 to 10NumPy
.max()، .min()، .mean()، .argmin()، .argmax().reshape() تغير شكل المصفوفة دون تغيير بياناتهاarr2 = np.random.randint(0, 100, 10)
arr2.max(), arr2.min(), arr2.mean()
arr2.argmin(), arr2.argmax()
arr3.reshape(3, 3)NumPy
mat[row, col]؛ : تختار صفا أو عمودا كاملاmat = np.arange(0, 100).reshape(10, 10)
mat[0, 1] # single element
mat[:, 0] # first column
mat[0:3, 0:3] # top-left 3x3 block
mat[0:3, -3:-1] # slicing with negative indicesPandas
Series هي مصفوفة أحادية البعد مصنفة - تشبه عمودا مع فهرس (Index)step_counts = pd.Series([3620, 7891, 9761], name='steps')
step_counts.index = pd.date_range('20240329', periods=3)
step_counts['2024-03-30'] # access like a dictionary
step_counts.dtypesPandas
DataFrame) يجمع عدة سلاسل (Series) في جدول مصنفjoined_data = list(zip(step_data, cycling_data))
activity_df = pd.DataFrame(joined_data,
index=pd.date_range('20240329', periods=6),
columns=['Walking', 'Cycling'])Pandas
.loc.ilocactivity_df.loc['2024-04-01':'2024-04-03', ['Walking']]
activity_df.iloc[0, :] # first row, all columns
activity_df.iloc[:2, 0] # first 2 rows, first columnPandas
pd.read_csv() تحمل البيانات الجدولية مباشرة في إطار بياناتdata = pd.read_csv('Iris_Data.csv')
data.head()
data.shape # (150, 5)
data['sepal_width']Pandas
data.loc[data.sepal_width > 3.5]data['sepal_area'] = data.sepal_length * data.sepal_widthgroupby('species').size(): 50 عينة لكل نوع، توازن تامgroup_sizes = data.groupby('species').size()Pandas
.mean()، .median()، .mode().std() (الانحراف المعياري)، .var() (التباين)، .sem() (الخطأ المعياري)data.petal_length.mean(), data.petal_length.median()
data.petal_length.std(), data.petal_length.var()Matplotlib
plt.hist(data.petal_length, bins=25)
plt.plot(data.sepal_length, data.sepal_width, marker='o')
plt.xlabel('Petal Length (cm)')
plt.title('Distribution of Petal Lengths')NumPy تمكن من الحوسبة العددية السريعة والمتجهة (Vectorized)Series) وإطارات البيانات (DataFrame) في Pandas هي الأدوات القياسية للبيانات الجدولية في بايثون.loc تختار بالتسمية، و.iloc تختار بالموضع الرقمي - من المهم معرفة الفرق بينهماGroupBy مع دوال التلخيص تلخص البيانات بسرعة حسب الفئةMatplotlib تحول أعمدة إطار البيانات إلى مدرجات تكرارية، ورسوم مبعثرة، ورسوم خطية للتحليل الاستكشافي السريعMahmoud Abas|المعمل الأول: مقدمة في بايثون لعلم البيانات