logo

Множення двох матриць в одному рядку за допомогою Numpy в Python

Множення матриці — це операція, яка приймає дві матриці як вхідні дані та створює одну матрицю шляхом множення рядків першої матриці на стовпець другої матриці. Під час множення матриці переконайтеся, що кількість стовпців першої матриці повинна дорівнювати кількості рядків другої матриці.

приклад: Множення двох матриць одна на одну розміром 3×3.



Input:matrix1 = ([1, 2, 3], [3, 4, 5], [7, 6, 4]) matrix2 = ([5, 2, 6], [5, 6, 7], [7, 6, 4]) Output : [[36 32 32] [70 60 66] [93 74 100]]>

Методи множення двох матриць у python

java отримати поточну дату

1. Використання явних циклів for: Це простий метод множення матриць, але один із дорогих методів для більшого набору вхідних даних. У цьому випадку ми використовуємо вкладені для цикли для повторення кожного рядка та кожного стовпця.

Якщо матриця1 є a n x m матриця і матриця2 є a м х л матриця.



Реалізація:

Python3






# input two matrices of size n x m> matrix1>=> [[>12>,>7>,>3>],> >[>4> ,>5>,>6>],> >[>7> ,>8>,>9>]]> matrix2>=> [[>5>,>8>,>1>],> >[>6>,>7>,>3>],> >[>4>,>5>,>9>]]> res>=> [[>0> for> x>in> range>(>3>)]>for> y>in> range>(>3>)]> # explicit for loops> for> i>in> range>(>len>(matrix1)):> >for> j>in> range>(>len>(matrix2[>0>])):> >for> k>in> range>(>len>(matrix2)):> ># resulted matrix> >res[i][j]>+>=> matrix1[i][k]>*> matrix2[k][j]> print> (res)>

>

>

Вихід

[[114, 160, 60], [74, 97, 73], [119, 157, 112]]>

У цій програмі ми використали вкладені цикли for для обчислення результату, який буде проходити через кожен рядок і стовпець матриці, нарешті він накопичуватиме суму добутку в результаті.

2. Використання Numpy: Множення за допомогою Numpy також відоме як векторизація, головна мета якого зменшити або видалити явне використання циклів for у програмі, завдяки чому обчислення стає швидшим.
Numpy — це збірка пакета на Python для обробки масивів і маніпуляцій. Для більших матричних операцій ми використовуємо пакет numpy python, який у 1000 разів швидший, ніж ітеративний один метод.
Щоб отримати докладну інформацію про Numpy, будь ласка, відвідайте Посилання

Реалізація:

Python3




# We need install numpy in order to import it> import> numpy as np> # input two matrices> mat1>=> ([>1>,>6>,>5>],[>3> ,>4>,>8>],[>2>,>12>,>3>])> mat2>=> ([>3>,>4>,>6>],[>5>,>6>,>7>],[>6>,>56>,>7>])> # This will return dot product> res>=> np.dot(mat1,mat2)> # print resulted matrix> print>(res)>

>

декодування base64 у js

>

Вихід:

[[ 63 320 83] [ 77 484 102] [ 84 248 117]]>

Використання numpy

Python3


1 мільйон номер



# same result will be obtained when we use @ operator> # as shown below(only in python>3.5)> import> numpy as np> # input two matrices> mat1>=> ([>1>,>6>,>5>],[>3> ,>4>,>8>],[>2>,>12>,>3>])> mat2>=> ([>3>,>4>,>6>],[>5>,>6>,>7>],[>6>,>56>,>7>])> # This will return matrix product of two array> res>=> mat1 @ mat2> # print resulted matrix> print>(res)>

>

>

Вихід:

[[ 63 320 83] [ 77 484 102] [ 84 248 117]]>

У наведеному вище прикладі ми використали скалярний добуток, а в математиці скалярний добуток — це алгебраїчна операція, яка бере два вектори однакового розміру та повертає одне число. Результат обчислюється шляхом множення відповідних записів і додавання цих продуктів.