寻找numpy.linalg.norm的3D版本

2 投票
1 回答
7500 浏览
提问于 2025-04-18 15:55

我在找一个Python里的内置函数,想要计算一个三维数组的弗罗贝纽斯范数。
我现在的做法是:

    np.sqrt(np.sum(np.square(x[:,:,:])))

但是对于我数组的大小来说,这个方法太慢了。
有没有什么好的建议?

提前谢谢大家...

1 个回答

2

np.linalg.norm 可以很好地处理高维数组:

x = np.random.randn(100, 100, 100)
print np.allclose(np.linalg.norm(x), np.sqrt(np.sum(np.square(x))))
# True

撰写回答