给定一个 3 乘以 3 的 numpy 数组
a = numpy.arange(0,27,3).reshape(3,3)
# array([[ 0, 3, 6],
# [ 9, 12, 15],
# [18, 21, 24]])
为了标准化我想到的二维数组的行
row_sums = a.sum(axis=1) # array([ 9, 36, 63])
new_matrix = numpy.zeros((3,3))
for i, (row, row_sum) in enumerate(zip(a, row_sums)):
new_matrix[i,:] = row / row_sum
一定有更好的方法,不是吗?
也许需要澄清一下:通过标准化,我的意思是,每行的条目总和必须为 1。但我认为大多数人都会清楚这一点。