Python 点乘矩阵列表,单位为numpy
让我们生成一个“三个2x2矩阵列表”,我称之为M1、M2和M3:Python 点乘矩阵列表,单位为numpy,python,numpy,linear-algebra,numpy-ndarray,numpy-einsum,Python,Numpy,Linear Algebra,Numpy Ndarray,Numpy Einsum,让我们生成一个“三个2x2矩阵列表”,我称之为M1、M2和M3: import numpy as np arr = np.arange(4*2*2).reshape((3, 2, 2)) 我想取所有这些矩阵的点积: A = M1 @ M2 @ M3 最简单最快的方法是什么?我基本上是在寻找类似于“.sum(axis=0)”的东西,但用于矩阵乘法。您可能在寻找: 将为您提供介于arr[0]、arr[1]和arr[2]之间的点积。正如arr[0]@arr[1]@arr[2]谢谢!正是我所寻找的
import numpy as np
arr = np.arange(4*2*2).reshape((3, 2, 2))
我想取所有这些矩阵的点积:
A = M1 @ M2 @ M3
最简单最快的方法是什么?我基本上是在寻找类似于“.sum(axis=0)”的东西,但用于矩阵乘法。您可能在寻找:
将为您提供介于
arr[0]
、arr[1]
和arr[2]
之间的点积。正如arr[0]@arr[1]@arr[2]
谢谢!正是我所寻找的。对于3个数组multi_dot
使用np.linalg.linalg.\u multi_dot\u three
哪个数组做点(点(A,B),C,out=out)
(如果形状不同,则使用另一个分组)。因此,如果数组都是相同的形状,多点
是链式的点
(或@
)。
arr = np.arange(3*2*2).reshape((-1, 2, 2))
np.linalg.multi_dot(arr)