numpy.linalg --- إجراءات الجبر الخطي

يوفّر الوحدة الفرعية numpy.linalg مجموعة صغيرة من إجراءات الجبر الخطي التي تعمل على كائنات numpy.ndarray. وتتطلب الدوال التي تعمل على المصفوفات مصفوفات ثنائية البعد؛ وتمرير مصفوفات ذات أبعاد مختلفة يُطلق الاستثناء ValueError. ولا تدعم هذه الوحدة الفرعية أنواع البيانات المركبة.

الدوال

numpy.linalg.cholesky(A: ndarray) ndarray

تحسب تحليل تشوليسكي لمصفوفة مربعة متماثلة موجبة التحديد.

المعاملات:

A -- مصفوفة مربعة ثنائية البعد متماثلة موجبة التحديد.

تُرجع:

مصفوفة سفلية مثلثية numpy.ndarray تُسمى L بحيث يكون A = L @ L.T.

يُطلق:

ValueError -- إذا لم تكن A مربعة، أو لم تكن متماثلة، أو لم تكن موجبة التحديد.

numpy.linalg.det(m: ndarray) float

تحسب محدِّد مصفوفة مربعة.

المعاملات:

m -- مصفوفة مربعة ثنائية البعد.

تُرجع:

محدِّد m بوصفه عدداً من نوع Python float. والقيمة المُرجَعة دائماً عدد عشري، حتى عندما يكون الإدخال مصفوفة أعداد صحيحة.

يُطلق:

ValueError -- إذا لم تكن m مربعة.

تُنفَّذ العملية الحسابية بالحذف الغاوسي مع الإرتكاز الجزئي.

numpy.linalg.eig(m: ndarray) tuple[ndarray, ndarray]

تحسب القيم الذاتية والمتجهات الذاتية لمصفوفة مربعة حقيقية متماثلة.

المعاملات:

m -- مصفوفة مربعة ثنائية البعد حقيقية متماثلة.

تُرجع:

زوجاً ثنائياً (eigenvalues, eigenvectors). حيث eigenvalues مصفوفة أحادية البعد بطول N؛ و eigenvectors مصفوفة بحجم N×N تكون أعمدتها هي المتجهات الذاتية المقابلة.

يُطلق:

ValueError -- إذا لم تكن m مربعة، أو لم تكن متماثلة، أو إذا أخفقت تكرارات دوران ياكوبي في التقارب.

numpy.linalg.inv(m: ndarray) ndarray

تحسب معكوس مصفوفة مربعة.

المعاملات:

m -- مصفوفة مربعة ثنائية البعد.

تُرجع:

معكوس m بوصفه مصفوفة عشرية numpy.ndarray.

يُطلق:

ValueError -- إذا لم تكن m مربعة أو كانت شاذّة.

يُنفَّذ القلب بالحذف الغاوسي-جوردان.

numpy.linalg.norm(x: ndarray, axis: int | None = None) float | ndarray

تحسب القاعدة-2 (المعيار الإقليدي) لمتجه أو مصفوفة.

المعاملات:
  • x -- كائن numpy.ndarray أو tuple أو list أو range.

  • axis -- محور اختياري يُحسب على امتداده المعيار. إذا كان None (القيمة الافتراضية)، فيُؤخذ المعيار على الإدخال المُسطَّح ويُرجَع عدد عشري واحد float. وإلا فيُختزَل المعيار على امتداد ذلك المحور ويُرجَع كائن numpy.ndarray.

تُرجع:

إما عدد من نوع Python float (عندما يكون axis مساوياً None أو عندما يكون x كائناً قابلاً للتكرار بخلاف ndarray) أو كائن numpy.ndarray مع إزالة ذلك المحور.

تُحسب القاعدة-2 على أنها sqrt(sum(x*x)) باستخدام متوسط جارٍ مستقر عددياً، بحيث لا تتطلب العملية تخزيناً إضافياً يتناسب مع حجم الإدخال.

numpy.linalg.qr(m: ndarray, mode: str = 'reduced') tuple[ndarray, ndarray]

تحلّل مصفوفة إلى حاصل ضرب مصفوفة متعامدة الأعمدة (orthonormal) ومصفوفة علوية مثلثية.

المعاملات:
  • m -- مصفوفة ثنائية البعد بالشكل (M, N).

  • mode -- إما 'reduced' (الافتراضي) أو 'complete'. في الوضع 'complete'، يكون لـ Q الشكل (M, M) ولـ R الشكل (M, N). وفي الوضع 'reduced'، تُقتطع Q و R إلى الأعمدة والصفوف الأولى البالغة min(M, N) على التوالي.

تُرجع:

زوجاً ثنائياً (Q, R) من كائنات numpy.ndarray بحيث يكون m == Q @ R، مع كون Q متعامدة الأعمدة و R علوية مثلثية.

يُطلق:
  • TypeError -- إذا لم تكن m كائن numpy.ndarray.

  • ValueError -- إذا لم تكن m ثنائية البعد أو لم يكن mode أحد القيم المقبولة.

يُنفَّذ التحليل عبر دورانات جيفنز المتتالية.