小编And*_*Pye的帖子

numpy 中的 3d 矩阵乘法

我正在使用 numpy 执行矩阵乘法,但我不知道如何利用 numpy 进行 3d 矩阵乘法。

假设我有一个 3x3 矩阵 a,我将它乘以 3x1 向量 b。这将给出一个 3x1 向量 c。

这是在 numpy 中完成的:

# (3, 3) * (3, 1) -> (3, 1)
c = np.matmul(a, b)
Run Code Online (Sandbox Code Playgroud)

好的,现在我想对 3d 矩阵执行类似的操作,该矩阵本质上是 2500 个 3x3 矩阵。现在我正在做一些事情,其效果是:

# (2500, 3, 3) * (2500, 3, 1) -> list of (3, 1) vectors with length 2500
C = [np.matmul(a, b) for a, b in zip(A, B)]
Run Code Online (Sandbox Code Playgroud)

它返回 (3, 1) 向量的列表。

我宁愿不循环,而是充分利用 numpy 的矢量化和矩阵/张量产品。有什么手术可以做吗...

# (2500, 3, 3) * (2500, …
Run Code Online (Sandbox Code Playgroud)

python numpy matrix linear-algebra

2
推荐指数
1
解决办法
1188
查看次数

标签 统计

linear-algebra ×1

matrix ×1

numpy ×1

python ×1