How to vector-multiply two arrays of matrices?
Date: 2023-03-30 11:35:45
To multiply two arrays of matrices element-wise, you can use NumPy's einsum
function. The einsum
function allows you to specify a subscript notation for the multiplication, which makes it easy to perform element-wise matrix multiplication.
Here's an example of how to use einsum
to multiply two arrays of matrices:
import numpy as np
# create two arrays of matrices
A = np.random.rand(3, 2, 2)
B = np.random.rand(3, 2, 2)
# multiply the two arrays element-wise
C = np.einsum('aij,aij->aij', A, B)
print(C)
In this example, A
and B
are both arrays of matrices with shape (3, 2, 2)
. The einsum
function takes two arguments: a subscript notation for the multiplication, and the two arrays to be multiplied.
The subscript notation 'aij,aij->aij'
specifies that we want to multiply the matrices element-wise, and that the output should have the same shape as the input arrays. The a
, i
, and j
indices correspond to the dimensions of the input matrices.
The resulting array C
will have the same shape as A
and B
, and each matrix in C
will be the element-wise product of the corresponding matrices in A
and B