【发布时间】:2016-02-15 03:24:06
【问题描述】:
我有一个 (N0, N1, N2, N3) 矩阵 V 和一个 (N1, N1) 矩阵 M。N1 通常约为 30-50,N0xN1xN2xN3 约为 1 000 000。我想要一个新的 Matrix EV,用于其中 i0, i1, i2, i3 条目由下式给出
np.sum(V[i0, :, i2, i3] * M[i1, :])
我目前的代码是:
V_exp = np.tile(V[:, :, :, :, None], (1, 1, 1, 1, N1))
M_exp = np.tile(M.T[None, :, None, None, :], (N0, 1, N2, N3, 1))
EV = np.sum(V_exp * M_exp, axis = 1)
EV = np.rollaxis(EV, 3, 1)
我必须多次执行此操作,这是我代码的绝对瓶颈。我想知道我的代码是否有可能提高速度。我很欣赏建议!
【问题讨论】:
标签: arrays performance numpy