Menu
Coddy logo textTech

כפל מטריצות

שיעור 18 מתוך 18 בקורס יסודות NumPy של Coddy.

כפל מטריצות הוא סדרה של מכפלות סקלריות שיוצרות מטריצה חדשה.

איך זה עובד?

נניח שיש לנו שתי מטריצות A שצורתן (3, 2) ו-B שצורתה (2, 4). 

הכפל של A ו-B ייתן מטריצה חדשה שצורתה (3, 4).

הממדים הפנימיים של המטריצות חייבים להיות זהים (במקרה הזה גם ל-A וגם ל-B יש 2 -> (3,2)(2,4)=(3,4))

הכפל של A*b הוא 

  • המכפלה הסקלרית של שורה 1 ב-A עם עמודה 1 ב-B היא התוצאה של האיבר במיקום [1, 1]
  • המכפלה הסקלרית של שורה 1 ב-A עם עמודה 2 ב-B היא התוצאה של האיבר במיקום [1, 2]
  • ...
  • ...
  • המכפלה הסקלרית של שורה 2 ב-A עם עמודה 1 ב-B היא התוצאה של האיבר במיקום [2, 1]
  • המכפלה הסקלרית של שורה 2 ב-A עם עמודה 2 ב-B היא התוצאה של האיבר במיקום [2, 2]
  • ...
  • ...
  • וכו׳.

דוגמה:

מטריצה A:

12
34
56

מטריצה B:

78910
11121314

תוצאה:

1*7 + 2*111*8 + 2*121*9 + 2*131*10 + 2*14
3*7 + 4*113*8 + 4*123*9 + 4*133*10 + 4*14
5*7 + 6*115*8 + 6*125*9 + 6*135*10 + 6*14

ולאחר החישוב:

29323538
65727986
101112123134

איך עושים זאת ב-numpy?

יש 3 דרכים להכפיל מטריצות:

  • np.matmul(matrix1, matrix2)
  • matrix1.dot(matrix2)
  • A @ B
import numpy as np
A = np.array([[1, 2], [3, 4], [5, 6]])
B = np.array([[7, 8, 9, 10], [11, 12, 13, 14]])
np.matmul(A,B)

פלט:

array([[ 29,  32,  35,  38],
       [ 65,  72,  79,  86],
       [101, 112, 123, 134]])
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

challenge icon

אתגר

צרו פונקציה בשם matrix_master שמקבלת שלוש רשימות Python ומחזירה את כפל המטריצות של שתי הרשימות הראשונות, ומבצעת מכפלה סקלרית של התוצאה עם הרשימה האחרונה

נסו בעצמכם

import numpy as np
def matrix_master(lst1, lst2, lst3):
    # complete

כל השיעורים ביחידה יסודות NumPy

תרגלו בעצמכם: קומפיילר Python אונליין