Numpy python中的多维数组乘法
我有两个阵列:Numpy python中的多维数组乘法,numpy,python-3.5,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] 我试图回答张贴在这个,但它没有给我想要的输出 上述代码的for循环版本为: L, M, N = 6, 31, 500 A = np.random.random((L, M, N)) B = np.rando
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]
我试图回答张贴在这个,但它没有给我想要的输出
上述代码的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)
我认为您正在寻找可以指定沿哪些轴求和的位置:
np.tensordot(B,A,axes=(1,0))
如果您将
B
的两个维度设置为不同,则模糊性会减少。我认为您不需要挤压<代码>A[:,j:::
将是2d。np.einsum('kl,lmn->kmn',B,A)
应该可以工作;但是你的迭代解意味着一个“mkn”顺序。