Menu
Coddy logo textTech

Mnożenie macierzy

Lekcja 18 z 18 w kursie Podstawy NumPy w Coddy.

Mnożenie macierzy to seria iloczynów skalarnych, których wynikiem jest nowa macierz.

Jak to działa?

Załóżmy, że mamy dwie macierze: A o kształcie (3, 2) i B o kształcie (2, 4). 

W wyniku mnożenia A i B otrzymamy nową macierz o kształcie (3, 4).

Wewnętrzne wymiary macierzy muszą być zgodne (w tym przypadku zarówno A, jak i B mają wymiar 2 -> (3,2)(2,4)=(3,4))

mnożenie A*b to 

  • iloczyn skalarny 1. wiersza macierzy A i 1. kolumny macierzy B daje element na pozycji [1, 1]
  • iloczyn skalarny 1. wiersza macierzy A i 2. kolumny macierzy B daje element na pozycji [1, 2]
  • ...
  • ...
  • iloczyn skalarny 2. wiersza macierzy A i 1. kolumny macierzy B daje element na pozycji [2, 1]
  • iloczyn skalarny 2. wiersza macierzy A i 2. kolumny macierzy B daje element na pozycji [2, 2]
  • ...
  • ...
  • itd.

Przykład:

Macierz A:

12
34
56

Macierz B:

78910
11121314

Wynik:

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

A po obliczeniu:

29323538
65727986
101112123134

Jak zrobić to w NumPy?

Są 3 sposoby mnożenia macierzy:

  • 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)

Wynik:

array([[ 29,  32,  35,  38],
       [ 65,  72,  79,  86],
       [101, 112, 123, 134]])
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

challenge icon

Wyzwanie

Utwórz funkcję o nazwie matrix_master, która przyjmuje trzy listy Pythona i zwraca iloczyn macierzy dwóch pierwszych list, a następnie wykonuje iloczyn skalarny wyniku z ostatnią listą

Spróbuj swoich sił

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

Wszystkie lekcje w sekcji Podstawy NumPy

Poćwicz samodzielnie: Kompilator Python online