2024-06-15 09:09:49 发布
网友
如何计算(100,8,8)矩阵中的矩阵范数,从而在末尾有100个范数列表向量?例如,我想要每个8x8矩阵的范数
现在我知道了,但它可能太低效和丑陋了
norms = [] for m in mats: norms.append(np.linalg.norm(m, ord='fro'))
foo = mats.reshape(100, -1) np.sqrt(np.diagonal(foo @ foo.T))
(这是专门针对Frobenius规范的)
list(map(lambda x: np.linalg.norm(x, ord='fro'), mats))
^{}接受一个axis参数,该参数可以是一个元组,其中包含两个保存矩阵的轴。所以你的计算很简单
axis
norms = np.linalg.norm(m, ord='fro', axis=(1, 2))
比如说,
In [43]: import numpy as np In [44]: rng = np.random.default_rng() In [45]: m = rng.uniform(0, 3, size=(10, 8, 8)) In [46]: norms = np.linalg.norm(m, ord='fro', axis=(1, 2)) In [47]: norms Out[47]: array([15.43326187, 12.18174753, 12.72366662, 14.20558871, 14.08558457, 13.51040102, 13.38476228, 14.3334069 , 15.19745515, 14.46134742])
(这是专门针对Frobenius规范的)
^{} 接受一个
axis
参数,该参数可以是一个元组,其中包含两个保存矩阵的轴。所以你的计算很简单比如说,
相关问题 更多 >
编程相关推荐