NumPy
NumPy for Numerical Computing
المصفوفات متعددة الأبعاد والعمليات المتجهة والبث: أساس الحساب العلمي في Python.
لماذا NumPy؟
قوائم Python مرنة لكنها بطيئة في العمليات العددية الكبيرة. توفر NumPy مصفوفة ndarray متجانسة النوع مخزنة بشكل متصل في الذاكرة، وعملياتها مكتوبة بلغة C. معظم مكتبات الذكاء الاصطناعي تبني على هذا النموذج أو تتوافق معه.
إنشاء المصفوفات
import numpy as np
a = np.array([1, 2, 3])
m = np.array([[1, 2, 3], [4, 5, 6]])
np.zeros((2, 3))
np.ones(4)
np.arange(0, 10, 2) # [0 2 4 6 8]
np.linspace(0, 1, 5) # خمس قيم متساوية التباعد
rng = np.random.default_rng(42)
rng.normal(size=(3, 2)) # قيم عشوائية من توزيع طبيعيالشكل والأبعاد
m.shape # (2, 3)
m.ndim # 2
m.dtype # int64 (حسب المنصة)
m.reshape(3, 2)
m.T # المنقولالعمليات المتجهة
x = np.array([1.0, 2.0, 3.0])
x * 2 # [2. 4. 6.]
x ** 2 # [1. 4. 9.]
np.exp(x)
x.mean(), x.std(), x.sum()لا حاجة إلى حلقة؛ العملية تُطبق على كل العناصر.
البث
X = np.array([[1, 2], [3, 4], [5, 6]]) # (3, 2)
mu = X.mean(axis=0) # (2,) متوسط كل عمود
X_centered = X - mu # بث على كل صفهذا السطر الأخير هو جوهر عملية توسيط البيانات قبل كثير من الخوارزميات.
الفهرسة المنطقية
scores = np.array([0.4, 0.9, 0.7, 0.2])
scores[scores > 0.5] # [0.9 0.7]
(scores > 0.5).astype(int) # [0 1 1 0]الجبر الخطي
W = np.array([[0.5, -1.0], [2.0, 0.1]])
v = np.array([1.0, 2.0])
W @ v # ضرب مصفوفة في متجه
np.linalg.inv(W)
np.linalg.norm(v)العملية @ هي ضرب المصفوفات، وهي العملية الأساسية في طبقات الشبكات العصبية.
مصطلحات الدرس
- البث Broadcasting
- قواعد تسمح بإجراء عمليات بين مصفوفات مختلفة الأشكال بتمديد الأبعاد المتوافقة ضمنياً.
- العمليات المتجهة Vectorization
- تطبيق العملية على المصفوفة كاملة دفعة واحدة بدلاً من المرور على العناصر بحلقة.
- المصفوفة ndarray N-dimensional Array
- بنية بيانات NumPy الأساسية: شبكة من القيم من نوع واحد لها شكل (shape) محدد.
الملخص
NumPy مكتبة الحساب العددي الأساسية في Python، تقدم المصفوفة ndarray متعددة الأبعاد ذات النوع الموحد، والعمليات المتجهة (vectorized) التي تُنفذ بكفاءة دون حلقات صريحة، وقواعد البث (broadcasting) لإجراء العمليات بين مصفوفات مختلفة الأبعاد، إضافة إلى دوال الجبر الخطي والإحصاء.
أسئلة مراجعة
-
ما شكل ناتج جمع مصفوفة شكلها (3, 4) مع مصفوفة شكلها (4,)؟
(3, 4)، إذ يُبث المتجه على كل صف.
-
لماذا تُفضّل العمليات المتجهة على الحلقات؟
لأنها تُنفذ داخلياً بشيفرة مترجمة محسنة فتكون أسرع بكثير وأوضح.
المصادر والمراجع
إكمال الدرس
أكملت كل دروس المسار! يمكنك الآن طلب شهادة إكمال المسار.
اطلب الشهادة