ضرب المصفوفة هي عملية تنتج مصفوفة واحدة عن طريق أخذ مصفوفتين كمدخلات وضرب صفوف المصفوفة الأولى في عمود المصفوفة الثانية. لاحظ أنه علينا التأكد من أن عدد الصفوف في المصفوفة الأولى يجب أن يكون مساويًا لعدد الأعمدة في المصفوفة الثانية.
في بايثون، تُعرف عملية ضرب المصفوفات باستخدام NumPy باسم ناقلات . الهدف الرئيسي من التوجيه هو إزالة أو تقليل للحلقات الذي كنا نستخدمه بشكل صريح. عن طريق تقليل حلقات 'for' من البرامج، فإنه يوفر عملية حسابية أسرع. يتم استخدام الحزمة المضمنة NumPy للمعالجة ومعالجة المصفوفات.
صفحات خادم جافا
هذه ثلاث طرق يمكننا من خلالها إجراء عملية ضرب المصفوفة العددية.
- الأول هو استخدام دالة multiply()، التي تقوم بإجراء الضرب على عناصر المصفوفة.
- الثاني هو استخدام الدالة matmul()، التي تنفذ منتج المصفوفة لمصفوفتين.
- والأخير هو استخدام الدالة dot()، التي تنفذ منتجًا نقطيًا لمصفوفتين.
مثال 1: ضرب المصفوفة حسب العناصر
import numpy as np array1=np.array([[1,2,3],[4,5,6],[7,8,9]],ndmin=3) array2=np.array([[9,8,7],[6,5,4],[3,2,1]],ndmin=3) result=np.multiply(array1,array2) result
في الكود أعلاه
- لقد قمنا باستيراد numpy بالاسم المستعار np.
- لقد أنشأنا array1 وray2 باستخدام الدالة numpy.array() ذات البعد 3.
- لقد أنشأنا نتيجة متغيرة وقمنا بتعيين القيمة التي تم إرجاعها للدالة np.multiply().
- لقد مررنا كلاً من المصفوفة array1 و array2 في np.multiply().
- وأخيرًا، حاولنا طباعة قيمة النتيجة.
في المخرجات، تم عرض مصفوفة ثلاثية الأبعاد تكون عناصرها نتيجة الضرب لكل من عنصري array1 وray2.
انتاج:
array([[[ 9, 16, 21], [24, 25, 24], [21, 16, 9]]])
مثال 2: منتج المصفوفة
import numpy as np array1=np.array([[1,2,3],[4,5,6],[7,8,9]],ndmin=3) array2=np.array([[9,8,7],[6,5,4],[3,2,1]],ndmin=3) result=np.matmul(array1,array2) result
انتاج:
array([[[ 30, 24, 18], [ 84, 69, 54], [138, 114, 90]]])
في الكود أعلاه
- لقد قمنا باستيراد numpy بالاسم المستعار np.
- لقد أنشأنا array1 وray2 باستخدام الدالة numpy.array() ذات البعد 3.
- لقد أنشأنا نتيجة متغيرة وقمنا بتعيين القيمة التي تم إرجاعها للدالة np.matmul().
- لقد مررنا كلاً من المصفوفة array1 و array2 في np.matmul().
- وأخيرًا، حاولنا طباعة قيمة النتيجة.
في المخرجات، تم عرض مصفوفة ثلاثية الأبعاد تكون عناصرها حاصل ضرب كل من عناصر array1 وray2.
مثال 3: المنتج النقطي
هذه هي المواصفات التالية لـ numpy.dot:
- عندما يكون كل من a وb عبارة عن صفائف أحادية البعد (أحادية البعد)-> المنتج الداخلي لمتجهين (بدون اقتران معقد)
- عندما يكون كل من a وb مصفوفتين ثنائي الأبعاد (ثنائي الأبعاد) -> ضرب المصفوفة
- عندما تكون a أو b عبارة عن 0-D (تُعرف أيضًا باسم العددية) -> اضرب باستخدام numpy.multiply(a, b) أو a * b.
- عندما تكون a عبارة عن مصفوفة N-D وb عبارة عن مصفوفة أحادية الأبعاد -> مجموع المنتج على المحور الأخير من a وb.
- عندما تكون a مصفوفة N-D وb عبارة عن مصفوفة M-D بشرط أن يكون M>=2 -> مجموع المنتج على المحور الأخير من a والمحور من الثاني إلى الأخير من b:
أيضًا، dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m])
import numpy as np array1=np.array([[1,2,3],[4,5,6],[7,8,9]],ndmin=3) array2=np.array([[9,8,7],[6,5,4],[3,2,1]],ndmin=3) result=np.dot(array1,array2) result
في الكود أعلاه
- لقد قمنا باستيراد numpy بالاسم المستعار np.
- لقد أنشأنا array1 وray2 باستخدام الدالة numpy.array() ذات البعد 3.
- لقد أنشأنا نتيجة متغيرة وقمنا بتعيين القيمة التي تم إرجاعها للدالة np.dot().
- لقد مررنا كلاً من المصفوفة array1 و array2 في np.dot().
- وأخيرًا، حاولنا طباعة قيمة النتيجة.
في الإخراج، تم عرض مصفوفة ثلاثية الأبعاد عناصرها هي المنتج النقطي لكل من عناصر array1 و array2.
انتاج:
array([[[[ 30, 24, 18]], [[ 84, 69, 54]], [[138, 114, 90]]]])