带有矩阵元素的Python Dot-Product

时间:2016-05-19 14:06:21

标签: python numpy

我想在python中实现以下计算:

使用

这里本身就是矩阵。 因此python应该计算矩阵时间向量乘法,其中向量元素是矩阵。这可能没有for循环吗?

2 个答案:

答案 0 :(得分:3)

使用numpy:

In [1]: import numpy as np

In [2]: M1 = np.array([[1, 2], [3, 4]])

In [3]: M2 = np.array([[10, 20], [30, 40]])

In [4]: E = np.array([[1, 1], [1, -1]])

In [5]: v = np.array([M1, M2])

In [6]: np.tensordot(E, v, 1)
Out[6]: 
array([[[ 11,  22],
        [ 33,  44]],

       [[ -9, -18],
        [-27, -36]]])

答案 1 :(得分:0)

如果你熟悉爱因斯坦求和符号,你可以想象E下标为E_ij,v为v_jkl,更常见的是在@ steve-kern的例子中写np.tensordot:

In [6]: np.einsum('ij,jkl',E,v)