python - 在numpy中计算没有循环的矩阵范数
问题描述
如何计算 (100, 8, 8) 矩阵内的矩阵范数,以便最后有 100 个范数列表向量?例如,我想要每个 8x8 矩阵的范数。
现在我做,但它可能太低效和丑陋
norms = []
for m in mats:
norms.append(np.linalg.norm(m, ord='fro'))
解决方案
numpy.linalg.norm
接受一个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])
推荐阅读
- c# - 如何提供 AddRange 以获取 C# 中的所有数据?
- azure - Azure.Storage.Blobs.ServiceRestClient.GetUserDelegationKey:System.ObjectDisposedException:无法访问已关闭的流
- amazon-s3 - Apache Airflow 操作员将数据文件从 S3 传输到 Azure blob
- html - 如何显示图像图标而不是图像名称
- reactjs - 如何修复 firebase 尝试导入错误:“getAnalytics”未从“firebase/analytics”导出
- haskell - 什么是运算符 (.&.) 和 (.|.)?
- html - 当滚动到达页面的某个点时,使用其他内容进行位置固定的 div 滚动
- javascript - React 对选中的复选框项目的价格进行汇总
- java - 如何使用 IKVM.NET 将 .JAR 文件转换为 .dll 文件?
- reactjs - React 测试库 - userEvent 上传到输入:“找不到 toLowerCase”