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])