我正在尝试以更有效的方式计算此操作:
y = np.array([xi*M for xi in x.T])
其中x是(n,m)矩阵,M是(m,m)矩阵。输出y的形状为(n,m,m),每个y[i,:,:] = np.multiply(x[:,i],M)。
x
(n,m)
M
(m,m)
y
(n,m,m)
y[i,:,:] = np.multiply(x[:,i],M)
我曾考虑使用einsum,但我很难理解如何使用下标。
np.einsum('ik,jk->ijk', x.T, M)