2017-07-28 35 views
0

我有一個陣列,例如這樣的:如何計算數組中的值與python中的數組之和的比率?

array =[[1,2,3], 
     [5,3,4], 
     [6,7,2]] 

,每個成員我想計算它們的比率,以該行的總和。

因此,我提出的樣品有問題的結果是:

result = [[1/(1+2+3),2/(1+2+3),3/(1+2+3)], 
      [5/(5+3+4),3/(5+3+4),4/(5+3+4)], 
      [6/(6+7+2),7/(6+7+2),2/(6+7+2)]] 

我寫了下面的代碼,但它不工作,因爲兩家運營商有不同的形狀:

array/array.sum(array, axis=1) 

回答

1

可以指定keepdim=True while sum sum,then you have a 2d array as result while each rows row for the row sum:

array = np.array([[1,2,3], 
     [5,3,4], 
     [6,7,2.]]) 

array/array.sum(1, keepdims=True) 
#array([[ 0.16666667, 0.33333333, 0.5  ], 
#  [ 0.41666667, 0.25  , 0.33333333], 
#  [ 0.4  , 0.46666667, 0.13333333]])