【发布时间】:2017-06-10 13:57:19
【问题描述】:
我有一个数组A,其形状为(N, N, K),我想计算另一个数组B,其形状与B[:, :, i] = np.linalg.inv(A[:, :, i])相同。
作为解决方案,我看到map 和for 循环,但我想知道numpy 是否提供了执行此操作的函数(我尝试过np.apply_over_axes,但它似乎只能处理一维数组)。
带有for 循环:
B = np.zeros(shape=A.shape)
for i in range(A.shape[2]):
B[:, :, i] = np.linalg.inv(A[:, :, i])
map:
B = np.asarray(map(np.linalg.inv, np.squeeze(np.dsplit(A, A.shape[2])))).transpose(1, 2, 0)
【问题讨论】:
标签: python arrays numpy vectorization linear-algebra