如何以更简洁的方式在Python中对一个二维的numpy数组进行归一化处理?

15 浏览
0 Comments

如何以更简洁的方式在Python中对一个二维的numpy数组进行归一化处理?

给定一个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

肯定有更好的方法,对吗?

或许要澄清一下:通过归一化,我指的是每行条目的总和必须为一。但我认为大多数人都会明白。

0