使用numpy中的einsum
函数。einsum
是一个强大的函数,可以根据指定的索引(index)来执行各种代数操作,其中包括矩阵乘法。在这里,我们可以使用einsum
来将多个矩阵相乘,而不必使用循环来迭代处理每个矩阵。下面是代码示例:
import numpy as np
# 创建一个包含3个2x2的矩阵的列表
mat_list = [np.random.rand(2,2) for _ in range(3)]
# 将所有矩阵相乘
result = np.einsum('ij,jk,kl->il', *mat_list)
print(result)
在这里,einsum
函数的第一个参数是一个字符串,用于指定要执行的操作。在这个例子中,它表示我们要将三个矩阵(使用展开表示为3个参数)相乘,生成一个2x2的结果矩阵。einsum
函数的args参数是一个可变参数,用于接受所有要进行代数操作的矩阵。
使用einsum
函数的好处在于,它可以将多个矩阵的乘法合并成单个矩阵运算,从而极大地提高了代码的执行效率,特别是当需要相乘的矩阵个数很多时。