带矩阵元的Python点积

2024-04-26 09:37:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用python实现以下计算:

。你知道吗

这里是矩阵本身。 因此python应该计算一个矩阵乘以向量乘,其中向量元素是矩阵。是吗这在没有for循环的情况下是可能的吗?你知道吗


Tags: 元素for情况矩阵向量
2条回答

如果你熟悉爱因斯坦求和法,你可以想象E下标为Eïij,v下标为vïjkl,更一般地写名词短语tensordot以@steve kern为例:

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

使用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]]])

相关问题 更多 >