在python中乘法多维数组

时间:2018-08-06 21:30:01

标签: numpy python-3.5

我有两个数组:

L, M, N = 6, 31, 500
A = np.random.random((L, M, N))
B = np.random.random((L, L))

我正在尝试获取一个数组C,例如:

C = B * A

C has dimension  [L, M, N]  

我尝试过在此link上发布的答案,但未提供所需的输出结果。

上述代码的for循环版本为:

L, M, N = 6, 31, 500
A = np.random.random((L, M, N))
B = np.random.random((L, L))

z1 = []
for j in range(M):
    a = np.squeeze(A[:, j, :])
    z1.append(np.dot(B, a))

z2 = np.stack(z1)

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找numpy.tensordot(),您可以在其中指定沿哪些轴求和:

np.tensordot(B,A,axes=(1,0))