الجبر الخطي باستخدام NumPy
نفّذ ضرب المصفوفات والتحليلات وحل الأنظمة الخطية
الجبر الخطي باستخدام NumPy درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 4 دروس في المجموع.
np.dot و@
لضرب المصفوفات، استخدم np.dot(A, B) أو العامل @ (في Python 3.5 والإصدارات الأحدث).
import numpy as np
A = np.array([[1,2],[3,4]])
B = np.array([[5,6],[7,8]])
print(A @ B)
# [[19 22]
# [43 50]]
print(np.dot(A, B)) # same resultالضرب على مستوى العناصر في مقابل ضرب المصفوفات
ينفّذ * الضرب على مستوى العناصر (جداء هادامار). أما @ فينفّذ ضرب المصفوفات. لا تخلط بينهما مطلقًا.
import numpy as np
A = np.array([[1,2],[3,4]])
B = np.array([[2,0],[1,3]])
print(A * B) # [[ 2 0] [ 3 12]] — element-wise
print(A @ B) # [[ 4 6] [10 12]] — matrix multiplyالمنقول
ينقل arr.T المصفوفة (فيبدّل الصفوف والأعمدة). وبالنسبة إلى الأبعاد الأعلى، استخدم np.transpose(arr, axes).
import numpy as np
A = np.array([[1,2,3],[4,5,6]])
print(A.shape) # (2, 3)
print(A.T.shape) # (3, 2)
print(A.T)np.linalg.inv وnp.linalg.det
احسب معكوس المصفوفة ومحددها.
import numpy as np
A = np.array([[2.,1.],[1.,3.]])
print(np.linalg.inv(A))
# [[ 0.6 -0.2]
# [-0.2 0.4]]
print(np.linalg.det(A)) # 5.0حل الأنظمة الخطية
تحل np.linalg.solve(A, b) النظام Ax = b بكفاءة باستخدام تحليل LU.
import numpy as np
# Solve: 2x + y = 5; x + 3y = 10
A = np.array([[2.,1.],[1.,3.]])
b = np.array([5.,10.])
x = np.linalg.solve(A, b)
print(x) # [1. 3.] → x=1, y=3القيم والمتجهات الذاتية
تعيد np.linalg.eig(A) القيم الذاتية والمتجهات الذاتية. استخدم np.linalg.eigh للمصفوفات المتماثلة، فهو أسرع وأكثر استقرارًا.
import numpy as np
A = np.array([[4., 2.], [1., 3.]])
vals, vecs = np.linalg.eig(A)
print("Eigenvalues:", vals) # [5. 2.]
print("Eigenvectors:\n", vecs)SVD: تحليل القيمة المفردة
تحلّل np.linalg.svd(A) المصفوفة A إلى U وSigma وVt. ويُستخدم ذلك لتقليل الأبعاد (PCA) ولحساب المعكوسات الكاذبة.
import numpy as np
A = np.array([[1,2],[3,4],[5,6]], dtype=float)
U, s, Vt = np.linalg.svd(A, full_matrices=False)
print("Singular values:", s)
# Reconstruct: U @ np.diag(s) @ Vt ≈ Anp.linalg.norm
احسب معايير المتجهات والمصفوفات.
import numpy as np
v = np.array([3., 4.])
print(np.linalg.norm(v)) # 5.0 (Euclidean)
print(np.linalg.norm(v, ord=1)) # 7.0 (Manhattan)
A = np.eye(3)
print(np.linalg.norm(A, "fro")) # 1.732 (Frobenius)الجداء الاتجاهي والجداء الخارجي
استخدم np.cross(a, b) لحساب الجداء الاتجاهي ثلاثي الأبعاد، وnp.outer(a, b) لحساب الجداء الخارجي.
import numpy as np
a = np.array([1,0,0])
b = np.array([0,1,0])
print(np.cross(a, b)) # [0 0 1]
print(np.outer([1,2,3], [4,5]))
# [[ 4 5]
# [ 8 10]
# [12 15]]np.linalg.lstsq
حل المربعات الصغرى للأنظمة زائدة التحديد (أي التي تحتوي على معادلات أكثر من المجهولات).
import numpy as np
# Fit y = ax + b to noisy data
X = np.column_stack([np.arange(5), np.ones(5)])
y = np.array([1.1, 2.0, 3.1, 3.9, 5.2])
coeffs, _, _, _ = np.linalg.lstsq(X, y, rcond=None)
print(f"slope={coeffs[0]:.2f}, intercept={coeffs[1]:.2f}")np.einsum
تعبّر np.einsum عن أي انكماش موتر باستخدام ترميز جمع أينشتاين، وهي مرنة للغاية في الجبر الخطي المعقد.
import numpy as np
A = np.random.rand(3, 4)
B = np.random.rand(4, 5)
# Matrix multiplication via einsum:
C = np.einsum("ij,jk->ik", A, B)
print(C.shape) # (3, 5)
# Trace:
M = np.eye(4)
print(np.einsum("ii->", M)) # 4.0تحقّق سريع
ما العامل الذي ينفّذ ضرب المصفوفات في NumPy (في Python 3.5 والإصدارات الأحدث)؟
مراجعة
استخدم @ لضرب المصفوفات، وnp.linalg.solve للأنظمة الخطية، وnp.linalg.eig للقيم الذاتية، وnp.linalg.svd للتحليل. وتعالج np.einsum انكماشات الموترات العامة.
الأسئلة الشائعة
هل درس «الجبر الخطي باستخدام NumPy» مجاني؟
نعم — نص درس «الجبر الخطي باستخدام NumPy» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 4 دروس في المجموع.
ماذا ستتعلم في «الجبر الخطي باستخدام NumPy»؟
نفّذ ضرب المصفوفات والتحليلات وحل الأنظمة الخطية تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟
لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «الجبر الخطي باستخدام NumPy»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟
نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مصفوفات NumPy وأنواع البيانات dtypes
- عمليات المصفوفات والبث
- الفهرسة والتقطيع والفهرسة المتقدمة
- الجبر الخطي باستخدام NumPy