相关疑难解决方法(0)

在没有循环的3D阵列中计算沿着第三轴的2D阵列的逆

我有一个A形状的数组,(N, N, K)我想计算另一个B具有相同形状的数组B[:, :, i] = np.linalg.inv(A[:, :, i]).

作为解决方案,我看到mapfor循环,但我想知道是否numpy提供了一个功能来做到这一点(我已经尝试过,np.apply_over_axes但它似乎只能处理1D数组).

for循环:

B = np.zeros(shape=A.shape)
for i in range(A.shape[2]):
    B[:, :, i] = np.linalg.inv(A[:, :, i])
Run Code Online (Sandbox Code Playgroud)

map:

B = np.asarray(map(np.linalg.inv, np.squeeze(np.dsplit(A, A.shape[2])))).transpose(1, 2, 0)
Run Code Online (Sandbox Code Playgroud)

python arrays numpy linear-algebra vectorization

7
推荐指数
1
解决办法
799
查看次数

标签 统计

arrays ×1

linear-algebra ×1

numpy ×1

python ×1

vectorization ×1