0Pricing
Python Academy · درس

مصفوفات NumPy وأنواع البيانات dtypes

أنشئ ndarrays وافهم dtypes واستكشف خصائص المصفوفات

مصفوفات NumPy وأنواع البيانات dtypes درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 4 دروس في المجموع.

ما هو NumPy؟

يوفّر NumPy بنية ndarray، وهي مصفوفة ذات نوع ثابت وذاكرة متجاورة، وتدعم العمليات المتجهية بسرعة تفوق قوائم Python بمراتب كبيرة.

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
print(arr)          # [1 2 3 4 5]
print(arr * 2)      # [ 2  4  6  8 10]   (no Python loop)

إنشاء المصفوفات

تشمل دوال الإنشاء الشائعة: np.array() وnp.zeros() وnp.ones() وnp.arange() وnp.linspace().

import numpy as np

print(np.zeros((2, 3)))     # 2x3 array of 0.0
print(np.ones(5))           # [1. 1. 1. 1. 1.]
print(np.arange(0, 10, 2))  # [0 2 4 6 8]
print(np.linspace(0, 1, 5)) # [0.   0.25 0.5  0.75 1.  ]

dtypes

لكل مصفوفة NumPy قيمة dtype واحدة. ومن الأنواع الشائعة: int32 وint64 وfloat32 وfloat64 وbool وcomplex128.

import numpy as np

a = np.array([1, 2, 3])           # int64 by default
b = np.array([1.0, 2.0])          # float64
c = np.array([1, 2], dtype=np.float32)

print(a.dtype)  # int64
print(c.dtype)  # float32

شكل المصفوفة وndim

‏shape صفيف من أحجام الأبعاد. وndim هو عدد الأبعاد. أما size فهو العدد الإجمالي للعناصر.

import numpy as np

m = np.ones((3, 4))
print(m.shape)   # (3, 4)
print(m.ndim)    # 2
print(m.size)    # 12
print(m.dtype)   # float64

إعادة تشكيل المصفوفات

تعيد reshape() عرضًا بشكل جديد (مع البيانات نفسها). أما flatten() فتعيد نسخة على شكل مصفوفة أحادية البعد.

import numpy as np

arr = np.arange(12)
mat = arr.reshape(3, 4)
print(mat)
# [[ 0  1  2  3]
#  [ 4  5  6  7]
#  [ 8  9 10 11]]
print(mat.flatten())   # [ 0  1  2  3 ...]

تحويل الأنواع

استخدم arr.astype(dtype) لتحويل مصفوفة إلى نوع مختلف. تعيد هذه الدالة نسخة دائمًا.

import numpy as np

arr = np.array([1, 2, 3])
float_arr = arr.astype(np.float64)
print(float_arr)   # [1. 2. 3.]
print(float_arr.dtype)   # float64

المصفوفات العشوائية

أنشئ مصفوفات عشوائية باستخدام np.random: بتوزيع منتظم أو طبيعي أو كأعداد صحيحة.

import numpy as np

rng = np.random.default_rng(seed=42)   # reproducible
print(rng.random(5))         # 5 uniform [0,1)
print(rng.standard_normal(3)) # 3 normal(0,1)
print(rng.integers(1, 10, 4)) # 4 ints [1,10)

فحص ذاكرة المصفوفة

تعطي itemsize عدد البايتات لكل عنصر، بينما تعطي nbytes العدد الإجمالي للبايتات.

import numpy as np

arr = np.zeros(1_000_000, dtype=np.float64)
print(arr.itemsize)   # 8
print(arr.nbytes)     # 8_000_000 (8 MB)

small = arr.astype(np.float32)
print(small.nbytes)   # 4_000_000 (4 MB)

np.empty وnp.full

تخصّص np.empty الذاكرة من دون تهيئة، ولذلك فهي سريعة. أما np.full فتملأ المصفوفة بقيمة ثابتة.

import numpy as np

e = np.empty((2,3))          # uninitialised — random garbage values
f = np.full((2,3), fill_value=7)
print(f)
# [[7 7 7]
#  [7 7 7]]

النسخة في مقابل العرض

يعيد تقطيع مصفوفة NumPy عرضًا (من دون نسخ). ويؤدي تعديل العرض إلى تعديل الأصل. استخدم .copy() للحصول على مصفوفة مستقلة.

import numpy as np

arr = np.array([1, 2, 3, 4])
view = arr[1:3]
view[0] = 99
print(arr)    # [ 1 99  3  4]  — original changed!

copy = arr[1:3].copy()
copy[0] = 0
print(arr)    # unchanged

المصفوفات المهيكلة

تخزّن المصفوفات المهيكلة بيانات غير متجانسة (مثل بنية C) في ndarray واحدة ذات حقول مسمّاة.

import numpy as np

dt = np.dtype([('name', 'U10'), ('age', np.int32), ('score', np.float64)])
people = np.array([
    ('Alice', 30, 95.5),
    ('Bob',   25, 87.3),
], dtype=dt)
print(people['name'])   # ['Alice' 'Bob']

تحقّق سريع

ماذا تعيد arr.reshape(3, 4)؟

مراجعة

إن ndarray في NumPy مصفوفة ذات نوع ثابت وذاكرة متجاورة. ومن سماتها الأساسية: shape وdtype وndim وnbytes. يعيد التقطيع عروضًا؛ استخدم .copy() للحصول على نسخة مستقلة. اختر أصغر نوع بيانات يكفي لتوفير الذاكرة.

الأسئلة الشائعة

هل درس «مصفوفات NumPy وأنواع البيانات dtypes» مجاني؟

نعم — نص درس «مصفوفات NumPy وأنواع البيانات dtypes» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 4 دروس في المجموع.

ماذا ستتعلم في «مصفوفات NumPy وأنواع البيانات dtypes»؟

أنشئ ndarrays وافهم dtypes واستكشف خصائص المصفوفات تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟

لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «مصفوفات NumPy وأنواع البيانات dtypes»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟

نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مصفوفات NumPy وأنواع البيانات dtypes
  2. عمليات المصفوفات والبث
  3. الفهرسة والتقطيع والفهرسة المتقدمة
  4. الجبر الخطي باستخدام NumPy
← العودة إلى Python Academy