在 python 中乘以多维数组
Multiplying multidimensional array in python
我有两个数组:
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)
我认为您正在寻找 numpy.tensordot(),您可以在其中指定要沿哪些轴求和:
np.tensordot(B,A,axes=(1,0))
我有两个数组:
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)
我认为您正在寻找 numpy.tensordot(),您可以在其中指定要沿哪些轴求和:
np.tensordot(B,A,axes=(1,0))