2
我正在构建实现PageRank算法的转换矩阵。我如何使用numpy来确保列合计一个。如何使numpy数组列的总和达到1
例如:
1 1 1
1 1 1
1 1 1
应被归一化是
.33 .33 .33
.33 .33 .33
.33 .33 .33
我正在构建实现PageRank算法的转换矩阵。我如何使用numpy来确保列合计一个。如何使numpy数组列的总和达到1
例如:
1 1 1
1 1 1
1 1 1
应被归一化是
.33 .33 .33
.33 .33 .33
.33 .33 .33
除以它们的列求和的每列的元素 -
a/a.sum(axis=0,keepdims=1) # or simply : a/a.sum(0)
为了使行向求和统一,改变轴输入 -
a/a.sum(axis=1,keepdims=1)
采样运行 -
In [78]: a = np.random.rand(4,5)
In [79]: a
Out[79]:
array([[ 0.37, 0.74, 0.36, 0.41, 0.44],
[ 0.51, 0.86, 0.91, 0.03, 0.76],
[ 0.56, 0.46, 0.01, 0.86, 0.38],
[ 0.72, 0.66, 0.56, 0.84, 0.69]])
In [80]: b = a/a.sum(axis=0,keepdims=1)
In [81]: b.sum(0) # Verify
Out[81]: array([ 1., 1., 1., 1., 1.])
,以确保它的工作原理上int
阵列以及为Python 2.x中,使用from __future__ import division
或使用np.true_divide
。