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
。