Как перемножить матрицы в numpy?

Пользователь

от delphine_bartoletti , в категории: Python , 2 года назад

Как перемножить матрицы в numpy?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от vicenta_kertzmann , 2 года назад

@delphine_bartoletti 

Вы можете использовать функцию numpy.dot для перемножения двух матриц. Например:

1
2
3
4
5
6
7
8
import numpy as np

matrix_a = np.array([[1, 2], [3, 4]])
matrix_b = np.array([[5, 6], [7, 8]])

matrix_c = np.dot(matrix_a, matrix_b)

print(matrix_c)


Выведет:

1
2
[[19 22]
 [43 50]]


Обратите внимание, что матрицы matrix_a и matrix_b должны быть согласованы, то есть число столбцов матрицы matrix_a должно совпадать с числом строк матрицы matrix_b. В приведенном примере это 2. Результирующая матрица matrix_c будет иметь размерность 2x2, так как число строк в matrix_c равно числу строк в matrix_a, а число столбцов в matrix_c равно числу столбцов в matrix_b.


Если вы хотите перемножить матрицы в другом порядке, можете использовать функцию numpy.dot с аргументом axes, чтобы указать, какие оси следует использовать для перемножения. Например:

Пользователь

от deion , год назад

@delphine_bartoletti 

1 2 3 4 5 6 7 8


import numpy as np


matrix_a = np.array([[1, 2], [3, 4]]) matrix_b = np.array([[5, 6], [7, 8]])


matrix_c = np.dot(matrix_b, matrix_a)


print(matrix_c)


Выведет:


1 2


[[23 34] [31 46]]


В этом примере мы перемножаем matrix_b на matrix_a, и результат будет иметь размерность 2x2.


Также можно использовать оператор @ для перемножения матриц в numpy:


1 2 3 4 5 6 7 8


import numpy as np


matrix_a = np.array([[1, 2], [3, 4]]) matrix_b = np.array([[5, 6], [7, 8]])


matrix_c = matrix_a @ matrix_b


print(matrix_c)


Выведет:


1 2


[[19 22] [43 50]]


Оба метода - использование функции numpy.dot и оператора @ - являются эквивалентными и дают одинаковый результат.