在python中,是否有任何方法可以同时计算多个2d矩阵的L2范数?

在python中,是否有任何方法可以同时计算多个2d矩阵的L2范数?,python,numpy,Python,Numpy,例如,我有一个维度矩阵(a,b,c,d)。我想计算所有d维度矩阵(a,b,c)的L2范数。有没有办法在不使用任何循环结构的情况下使用numpy.linalg.norm? 我的意思是,结果数组应该是1xd这个怎么样 import numpy as np mat = np.arange(2*3*4*5).reshape(2,3,4,5) # create 4d array mat2 = np.moveaxis(mat,-1,0) # bring last axis to

例如,我有一个维度矩阵(a,b,c,d)。我想计算所有d维度矩阵(a,b,c)L2范数。有没有办法在不使用任何循环结构的情况下使用
numpy.linalg.norm
? 我的意思是,结果数组应该是1xd

这个怎么样

import numpy as np
mat      = np.arange(2*3*4*5).reshape(2,3,4,5)  # create 4d array
mat2     = np.moveaxis(mat,-1,0)     # bring last axis to the front
*outarr, = map(np.linalg.norm,mat2)  # use map


谢谢你,回答得很好。我刚刚检查了我的数据,答案是正确的。虽然映射步骤对我来说有点难理解。感谢您理解迭代器和iterables。然后地图就会清晰了。