对于M
我们所拥有的可逆矩阵inv(M).T == inv(M.T)
(逆的转置等于转置的倒数).
由于np.linalg.inv
是可播放的,只需转置A
,调用inv
和转置结果即可解决您的问题:
B = np.linalg.inv(A.T).T
例如:
>>> N, K = 2, 3 >>> A = np.random.randint(1, 5, (N, N, K)) >>> A array([[[4, 2, 3], [2, 3, 1]], [[3, 3, 4], [4, 4, 4]]]) >>> B = np.linalg.inv(A.T).T >>> B array([[[ 0.4 , -4. , 0.5 ], [-0.2 , 3. , -0.125]], [[-0.3 , 3. , -0.5 ], [ 0.4 , -2. , 0.375]]])
您可以按预期检查B
匹配数组反转的值A
:
>>> all(np.allclose(B[:, :, i], np.linalg.inv(A[:, :, i])) for i in range(K)) True