栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

沿3D数组中的第三轴计算2D数组的逆数而无循环

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

沿3D数组中的第三轴计算2D数组的逆数而无循环

对于可逆矩阵,

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))>>> Aarray([[[4, 2, 3],        [2, 3, 1]],       [[3, 3, 4],        [4, 4, 4]]])>>> B = np.linalg.inv(A.T).T>>> Barray([[[ 0.4  , -4.   ,  0.5  ],        [-0.2  ,  3.   , -0.125]],       [[-0.3  ,  3.   , -0.5  ],        [ 0.4  , -2.   ,  0.375]]])

您可以按预期检查

B
match的逆数组的值
A

>>> all(np.allclose(B[:, :, i], np.linalg.inv(A[:, :, i])) for i in range(K))True


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/625999.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号