如何在Python NumPy中规范化二维数组的一维?

0 投票
1 回答
2536 浏览
提问于 2025-04-18 06:09

比如说,我们想把一个二维向量的每一行进行归一化处理,让每一行的大小都变成1:

import numpy as np

a = np.arange(0,27,3).reshape(3,3)

result = a / norm_of_rows( a )

这样处理后:

np.sum( result**2, axis=-1 )
# array([ 1.,  1.,  1.]) 

原来的问题是,如何在Python中更简洁地归一化一个二维的numpy数组? 有些人觉得我的问题是重复的,其实作者问的是如何让每一行的元素加起来等于1。这和让每一行的大小等于1是不同的(后者是每个元素平方后加起来等于1)。

1 个回答

0

np.max(a[0,:]) 这个代码会给你第一行的最大值,

np.max(a[1,:]) 这个代码会给你第二行的最大值。

如果你想把整个矩阵进行归一化,只需要遍历每一行,然后把每个元素都除以对应行的最大值 max_row

撰写回答