0Pricing
Learn AI with Python · درس

البث والعمليات المتجهة

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

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

لماذا نستخدم المتجهية؟

تعمل NumPy على المصفوفات بأكملها بسرعة C. وغالبًا ما يكون استبدال حلقات Python بتعابير المصفوفات، وهو ما يسمى المتجهية، أسرع من 10 إلى 100 مرة.

العمليات على مستوى العناصر

تُطبَّق العوامل الحسابية عنصرًا تلو الآخر عندما تتطابق الأشكال. ولا حاجة إلى حلقة.

import numpy as np
a = np.array([1, 2, 3])
b = np.array([10, 20, 30])
print(a + b)   # [11 22 33]
print(a * b)   # [10 40 90]

بث القيمة العددية

تُطبَّق العملية بين مصفوفة وقيمة عددية على كل عنصر. وتُبث القيمة العددية عبر المصفوفة.

a = np.array([1, 2, 3, 4])
print(a * 10)   # [10 20 30 40]
print(a + 100)  # [101 102 103 104]

ما المقصود بالبث؟

يتيح البث لـ NumPy دمج مصفوفات ذات أشكال مختلفة عبر تمديد الأصغر منها افتراضيًا، من دون نسخ الذاكرة.

قاعدة البث

قارنوا الأشكال بدءًا من البعد الأخير (الأيمن). يكون البعدان متوافقين عندما يتساويان أو يكون أحدهما 1. ويتمدد البعد الذي حجمه 1 ليتطابق مع الآخر.

# (3, 4) with (4,)   -> compatible (trailing 4 matches)
# (3, 4) with (3, 1)  -> compatible (1 stretches to 4)
# (3, 4) with (3,)    -> ERROR (trailing 4 vs 3)

بث متجه الصف

تُضاف المصفوفة أحادية البعد التي يساوي طولها عدد الأعمدة إلى كل صف.

m = np.array([[1, 2, 3], [4, 5, 6]])
row = np.array([10, 20, 30])
print(m + row)
# [[11 22 33]
#  [14 25 36]]

بث متجه العمود

أعيدوا تشكيل المتجه ليصبح عمودًا (بشكل (n,1)) حتى يُبث عبر الأعمدة بدلًا من الصفوف.

col = np.array([[100], [200]])   # shape (2, 1)
print(m + col)
# [[101 102 103]
#  [204 205 206]]

توسيط البيانات (استخدام عملي)

يؤدي طرح متوسط كل عمود إلى توسيط كل سمة، وهي خطوة شائعة في المعالجة المسبقة تُنجز في سطر واحد باستخدام البث.

data = np.array([[1.0, 10.0], [2.0, 20.0], [3.0, 30.0]])
centered = data - data.mean(axis=0)
print(centered)
# columns now have mean 0

الدوال العامة (ufuncs)

توفّر NumPy دوال رياضية سريعة تعمل على مستوى العناصر، وتسمى ufuncs، مثل: np.sqrt وnp.log وnp.exp وغيرها. وهي متجهية ومدركة للبث.

a = np.array([1.0, 4.0, 9.0, 16.0])
print(np.sqrt(a))   # [1. 2. 3. 4.]
print(np.log(a))    # natural log of each element
print(np.exp([0, 1]))  # [1.        2.71828183]

سرعة الحلقة مقارنة بالمتجهية

يصبح الحساب نفسه أسرع كثيرًا عند تنفيذه بطريقة متجهية. استخدموا %timeit لملاحظة الفرق على مليون عنصر.

big = np.arange(1000000, dtype=float)
# Slow Python loop:
# %timeit [x*x for x in big]
# Fast vectorized:
%timeit big * big   # typically tens of times faster

دمج المتجهية

سلسلوا دوال ufuncs والعمليات الحسابية للتعبير عن الصيغ مباشرةً. يحسب هذا منحنى غاوسيًا من دون حلقات.

x = np.linspace(-3, 3, 7)
y = np.exp(-x**2 / 2)
print(np.round(y, 3))

اختبار سريع

اختبروا فهمكم للبث.

مراجعة

أساسيات المتجهية:

  • تتجنب العمليات على مستوى العناصر حلقات Python وتعمل بسرعة C
  • يُحاذي البث الأبعاد الأخيرة؛ ويجب أن تتطابق الأحجام أو يكون أحدها 1
  • استخدموا متجهات الأعمدة (n,1) للبث نزولًا عبر الأعمدة
  • ufuncs: np.sqrt وnp.log وnp.exp
  • وسّطوا البيانات باستخدام data - data.mean(axis=0)

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

هل درس «البث والعمليات المتجهة» مجاني؟

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

ماذا ستتعلم في «البث والعمليات المتجهة»؟

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

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

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

كم من الوقت يستغرق درس «البث والعمليات المتجهة»؟

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

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

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

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

  1. إنشاء المصفوفات وخصائصها
  2. الفهرسة والتقطيع والفهرسة المتقدمة
  3. البث والعمليات المتجهة
  4. الجبر الخطي باستخدام NumPy
← العودة إلى Learn AI with Python